public static ObservableCollection <CrmPluginTrace> CreateCrmPluginTraceView(EntityCollection pluginTraces)
        {
            ObservableCollection <CrmPluginTrace> crmPluginTraces = new ObservableCollection <CrmPluginTrace>();

            if (pluginTraces == null)
            {
                return(crmPluginTraces);
            }

            foreach (Entity pluginTrace in pluginTraces.Entities)
            {
                CrmPluginTrace crmPluginTrace = new CrmPluginTrace
                {
                    PluginTraceLogidId = pluginTrace.Id,
                    Entity             = pluginTrace.GetAttributeValue <string>("primaryentity"),
                    CorrelationId      = pluginTrace.GetAttributeValue <Guid>("correlationid").ToString(),
                    CreatedOn          = pluginTrace.GetAttributeValue <DateTime>("createdon").ToLocalTime(),
                    CreatedOnUtc       = pluginTrace.GetAttributeValue <DateTime>("createdon"),
                    Depth = pluginTrace.GetAttributeValue <int>("depth"),
                    ExecutionDurationMs = pluginTrace.GetAttributeValue <int>("performanceexecutionduration"),
                    ExecutionDuration   = DateFormatting.MsToReadableTime(pluginTrace.GetAttributeValue <int>("performanceexecutionduration")),
                    MessageName         = pluginTrace.GetAttributeValue <string>("messagename"),
                    MessageBlock        = pluginTrace.GetAttributeValue <string>("messageblock"),
                    TypeName            = pluginTrace.GetAttributeValue <string>("typename"),
                    Mode             = (pluginTrace.GetAttributeValue <OptionSetValue>("mode").Value == 0) ? "Synchronous" : "Asynchronous",
                    ExceptionDetails = pluginTrace.GetAttributeValue <string>("exceptiondetails"),
                    Details          = CreateDetails(pluginTrace.GetAttributeValue <string>("messageblock"), pluginTrace.GetAttributeValue <string>("exceptiondetails"))
                };

                crmPluginTraces.Add(crmPluginTrace);
            }

            return(crmPluginTraces);
        }
示例#2
0
 private static bool TypeNameCondition(CrmPluginTrace crmPluginTrace, ObservableCollection <FilterTypeName> filterTypeNames)
 {
     return(IsStringFilterValid(new ObservableCollection <IFilterProperty>(filterTypeNames), crmPluginTrace.TypeName));
 }
示例#3
0
 private static bool EntityCondition(CrmPluginTrace crmPluginTrace, ObservableCollection <FilterEntity> filterEntities)
 {
     return(IsStringFilterValid(new ObservableCollection <IFilterProperty>(filterEntities), crmPluginTrace.Entity));
 }