Написал универсальный плагин для разных событий. Из всех событий не хочет перехватывать только SetState. Сущность моя самодельная, я хочу перехватить событие перехода в неактивное состояние. Это ведь SetState не так ли? Сборку с PDB таскал уже сто тыщ раз и перерегистрировал сборку и каждый шаг. Почему не перехватывается SetState?
Код:
public void Execute(Microsoft.Crm.Sdk.IPluginExecutionContext context)
{
string sId = string.Empty;
string sEntityName = string.Empty;
string sEventName = string.Empty;
switch (context.MessageName)
{
case "Create":
if (context.OutputParameters.Properties.Contains("id"))
{
sEventName = "Create";
sId = context.OutputParameters.Properties["id"].ToString();
if (context.InputParameters.Properties.Contains(ParameterName.Target) && context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
{
DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];
sEntityName = entity.Name;
}
}
break;
case "Update":
if (context.InputParameters.Properties.Contains(ParameterName.Target) && context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
{
sEventName = "Update";
DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties[ParameterName.Target];
sId = ((Key)entity.Properties[entity.Name + "id"]).Value.ToString();
sEntityName = entity.Name;
}
break;
case "SetState":
throw new Exception("eeeeee");
if (context.InputParameters.Properties.Contains("EntityMoniker") && context.InputParameters.Properties["EntityMoniker"] is Moniker)
{
Moniker entityMoniker = (Moniker)context.InputParameters["EntityMoniker"];
sId = entityMoniker.Id.ToString();
sEntityName = entityMoniker.Name;
sEventName = "SetState";
return;
}
break;
}
ICrmService serv = context.CreateCrmService(true);
if (!string.IsNullOrEmpty(sId) && !string.IsNullOrEmpty(sEntityName))
ExportProcess(serv, sId, sEntityName);
}
throw new Exception Стоят чисто для проверки.. Я пробовал отладчико ходить, но в нем тоже Execute не срабатывает.