|
|
#6 |
|
Участник
|
Исходя из статьи http://dmcrm.blogspot.com/2008/08/st...on-method.html переписала код с использованием OpportunityClose.
Код: public class OpportunityFact : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
ITracingService tracer = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
if (tracer == null)
throw new InvalidPluginExecutionException("Failed to retrieve the tracing service.");
try
{
Microsoft.Xrm.Sdk.IPluginExecutionContext context = (Microsoft.Xrm.Sdk.IPluginExecutionContext)
serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext));
if (context.InputParameters.Contains("OpportunityClose") &&
context.InputParameters["OpportunityClose"] is Entity)
{
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.UserId);
Entity entity = (Entity)context.InputParameters["OpportunityClose"];
if (entity.LogicalName == "opportunityclose")
{
throw new Exception("win!");
}
}
}
catch (Exception e)
{
tracer.Trace("Received exception: {0}", e);
throw new InvalidPluginExecutionException(e.Message);
}
}
}Это возможно сделать? Плагин зарегестирован на событиях Won и Lose на PreStage. |
|
|
|
|
|