Nuget - Microsoft.CrmSdk.CoreAssemblies (9.0.2.22)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using Microsoft.Xrm.Sdk;
namespace MS.DEV.Plugins
{
public class CreateAccountTask : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
Entity entity = (Entity)context.InputParameters["Target"];
try
{
Entity followup = new Entity("task");
followup["subject"] = "Send e-mail to the new customer.";
followup["description"] = "Follow up with the customer. Check if there are any new issues that need resolution.";
followup["scheduledstart"] = DateTime.Now;
followup["scheduledend"] = DateTime.Now.AddDays(2);
followup["category"] = context.PrimaryEntityName;
if (context.OutputParameters.Contains("id"))
{
Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString());
string regardingobjectidType = "account";
followup["regardingobjectid"] = new EntityReference(regardingobjectidType, regardingobjectid);
}
// Create the followup activity
service.Create(followup);
}
catch (FaultException ex)
{
throw new InvalidPluginExecutionException("An error occurred in Plugin.", ex);
}
catch (Exception ex)
{
tracingService.Trace("FollowUpPlugin: {0}", ex.ToString());
throw;
}
}
}
}
}
---------------------
Update
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
namespace MS.DEV.Plugins
{
public class UpdateAccountEmail : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
Entity entity = (Entity)context.InputParameters["Target"];
try
{
Entity fromActivityParty = new Entity("activityparty");
Entity toActivityParty = new Entity("activityparty");
Guid accoundId = entity.Id;
Guid userId = context.UserId;
fromActivityParty["partyid"] = new EntityReference("systemuser", userId);
toActivityParty["partyid"] = new EntityReference("account", accoundId);
Entity Email = new Entity("email");
Email["from"] = new Entity[] { fromActivityParty };
Email["to"] = new Entity[] { toActivityParty };
Email["subject"] = "New Escalations ";
Email["description"] = "You got escalted !!";
Email["directioncode"] = true;
Email["regardingobjectid"] = new EntityReference("account", accoundId);
// Create the followup activity
Guid EmailId = service.Create(Email);
SendEmailRequest sendEmailRequest = new SendEmailRequest
{
EmailId = EmailId,
TrackingToken = Convert.ToString(new Random().Next(0, 999999)),
IssueSend = true
};
SendEmailResponse sendEmailresp = (SendEmailResponse)service.Execute(sendEmailRequest);
}
catch (FaultException ex)
{
throw new InvalidPluginExecutionException("An error occurred in Plugin.", ex);
}
catch (Exception ex)
{
tracingService.Trace("FollowUpPlugin: {0}", ex.ToString());
throw;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using Microsoft.Xrm.Sdk;
namespace MS.DEV.Plugins
{
public class CreateAccountTask : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
Entity entity = (Entity)context.InputParameters["Target"];
try
{
Entity followup = new Entity("task");
followup["subject"] = "Send e-mail to the new customer.";
followup["description"] = "Follow up with the customer. Check if there are any new issues that need resolution.";
followup["scheduledstart"] = DateTime.Now;
followup["scheduledend"] = DateTime.Now.AddDays(2);
followup["category"] = context.PrimaryEntityName;
if (context.OutputParameters.Contains("id"))
{
Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString());
string regardingobjectidType = "account";
followup["regardingobjectid"] = new EntityReference(regardingobjectidType, regardingobjectid);
}
// Create the followup activity
service.Create(followup);
}
catch (FaultException
{
throw new InvalidPluginExecutionException("An error occurred in Plugin.", ex);
}
catch (Exception ex)
{
tracingService.Trace("FollowUpPlugin: {0}", ex.ToString());
throw;
}
}
}
}
}
---------------------
Update
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
namespace MS.DEV.Plugins
{
public class UpdateAccountEmail : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
Entity entity = (Entity)context.InputParameters["Target"];
try
{
Entity fromActivityParty = new Entity("activityparty");
Entity toActivityParty = new Entity("activityparty");
Guid accoundId = entity.Id;
Guid userId = context.UserId;
fromActivityParty["partyid"] = new EntityReference("systemuser", userId);
toActivityParty["partyid"] = new EntityReference("account", accoundId);
Entity Email = new Entity("email");
Email["from"] = new Entity[] { fromActivityParty };
Email["to"] = new Entity[] { toActivityParty };
Email["subject"] = "New Escalations ";
Email["description"] = "You got escalted !!";
Email["directioncode"] = true;
Email["regardingobjectid"] = new EntityReference("account", accoundId);
// Create the followup activity
Guid EmailId = service.Create(Email);
SendEmailRequest sendEmailRequest = new SendEmailRequest
{
EmailId = EmailId,
TrackingToken = Convert.ToString(new Random().Next(0, 999999)),
IssueSend = true
};
SendEmailResponse sendEmailresp = (SendEmailResponse)service.Execute(sendEmailRequest);
}
catch (FaultException
{
throw new InvalidPluginExecutionException("An error occurred in Plugin.", ex);
}
catch (Exception ex)
{
tracingService.Trace("FollowUpPlugin: {0}", ex.ToString());
throw;
}
}
}
}
}