using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
{
public class PrePopulatingAccountsField : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
try
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory orgFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService orgService = orgFactory.CreateOrganizationService(context.UserId);
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
{
tracingService.Trace(/Inside Depth Check, Depth is grater than 1. Actual Depth:/ + context.Depth);
return;
}
Entity target = null;
Entity entPreImage = null;
if (context.MessageName.ToLower().Equals(/create/))
{
target = (Entity)context.InputParameters[/Target/];
tracingService.Trace(/Create Event Triggered.../);
}
string firmcrdid = target.Contains(/abc_firmcrdid /) ? target.GetAttributeValue<string>(/abc_firmcrdid /) : null;
tracingService.Trace(/updated firmcrdid: /+ firmcrdid);
if (firmcrdid != null )
{
target[/abc_id/] = firmcrdid;
tracingService.Trace(/Copied the firmcrdid./);
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException(ex.Message);
}
}
}
}