public static XrmInstanceConfiguration GetWorkflowTypes(EntityReference assemblyRef, IOrganizationService service) { var assemblyId = assemblyRef.Id; var context = new Microsoft.Xrm.Sdk.Client.OrganizationServiceContext(service); var plugintype = (from pt in context.CreateQuery("plugintype") where (Guid)pt["pluginassemblyid"] == assemblyId select pt).ToList(); var ptdic = new Collection <XrmWorkflowTypeContainer>(); foreach (var pt in plugintype) { var workflowTypeContainer = new XrmWorkflowTypeContainer { Name = pt.GetAttributeValue <string>("typename"), Id = pt.Id, Group = pt.GetAttributeValue <string>("workflowactivitygroupname"), NameInGroup = pt.GetAttributeValue <string>("name") }; ptdic.Add(workflowTypeContainer); } return(new XrmInstanceConfiguration { WorkflowTypes = ptdic, AssemblyRef = assemblyRef }); }
public static bool Compare(WorkflowActivity work1, XrmWorkflowTypeContainer work2) { if (work1 == null) { return(false); } var group1 = string.IsNullOrWhiteSpace(work1.Group) ? null : work1.Group; var group2 = string.IsNullOrWhiteSpace(work2.Group) ? null : work2.Group; var nameInGroup1 = string.IsNullOrWhiteSpace(work1.NameInGroup) ? null : work1.NameInGroup; var nameInGroup2 = string.IsNullOrWhiteSpace(work2.NameInGroup) ? null : work2.NameInGroup; if (group1 != group2) { return(false); } if (nameInGroup1 != nameInGroup2) { return(false); } return(true); }