Exemplo n.º 1
0
        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
            });
        }
Exemplo n.º 2
0
        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);
        }