Beispiel #1
0
        public void RetrieveForms(ConnectionType connectionType, bool execute, Action <int, string> reportProgress)
        {
            if (!execute)
            {
                return;
            }

            CrmServiceClient  crmServiceClient  = GetCrmServiceClient(connectionType);
            CustomizationRoot customizationRoot = GetCustomizationRoot(connectionType);

            QueryExpression query = new QueryExpression
            {
                EntityName = "systemform",
                ColumnSet  = new ColumnSet("formid", "introducedversion", "description", "isairmerged", "iscustomizable", "formpresentation", "formxml", "componentstate", "isdesktopenabled", "formjson", "version", "versionnumber", "canbedeleted", "ismanaged", "formactivationstate", "uniquename", "type", "objecttypecode", "isdefault"),
                PageInfo   = new PagingInfo
                {
                    Count        = 5000,
                    PageNumber   = 1,
                    PagingCookie = null
                },
                Orders =
                {
                    new OrderExpression("objecttypecode", OrderType.Ascending),
                    new OrderExpression("name",           OrderType.Ascending),
                    //new OrderExpression("type", OrderType.Ascending)
                }
            };

            reportProgress(0, $"Retrieving and processing system forms data from {connectionType.ToString()}");
            List <Entity> formsResult = ExecuteQueryWithPaging(query, crmServiceClient);

            foreach (Entity form in formsResult)
            {
                string entityName = form.GetAttributeValue <string>("objecttypecode");
                string typeName   = form.FormattedValues["type"];

                CustomizationEntity customizationEntity = customizationRoot.Forms.Find(e => e.Name == entityName);
                if (customizationEntity == null)
                {
                    customizationEntity = new CustomizationEntity(entityName);
                    customizationRoot.Forms.Add(customizationEntity);
                }

                CustomizationType customizationType = customizationEntity.CustomzationTypes.Find(t => t.Name == typeName);
                if (customizationType == null)
                {
                    customizationType = new CustomizationType(typeName);
                    customizationEntity.CustomzationTypes.Add(customizationType);
                }

                customizationType.Entities.Add(form);
            }
        }
Beispiel #2
0
        public void RetrieveViews(ConnectionType connectionType, bool execute, Action <int, string> reportProgress)
        {
            if (!execute)
            {
                return;
            }

            CrmServiceClient  crmServiceClient  = GetCrmServiceClient(connectionType);
            CustomizationRoot customizationRoot = GetCustomizationRoot(connectionType);

            QueryExpression query = new QueryExpression
            {
                EntityName = "savedquery",
                ColumnSet  = new ColumnSet("introducedversion", "description", "iscustomizable", "componentstate", "versionnumber", "canbedeleted", "ismanaged", "solutionid", "isdefault", "isuserdefined", "savedqueryid", "statecode", "conditionalformatting", "name", "querytype", "isquickfindquery", "columnsetxml", "offlinesqlquery", "queryappusage", "advancedgroupby", "fetchxml", "returnedtypecode", "isprivate", "iscustom", "layoutjson", "statuscode", "queryapi", "organizationtaborder", "layoutxml"),
                PageInfo   = new PagingInfo
                {
                    Count        = 5000,
                    PageNumber   = 1,
                    PagingCookie = null
                },
                Orders =
                {
                    new OrderExpression("returnedtypecode", OrderType.Ascending),
                    new OrderExpression("name",             OrderType.Ascending),
                    //new OrderExpression("type", OrderType.Ascending)
                }
            };

            reportProgress(0, $"Retrieving and processing system view data from {connectionType.ToString()}");
            List <Entity> viewsResult = ExecuteQueryWithPaging(query, crmServiceClient);

            foreach (Entity view in viewsResult)
            {
                string entityName = view.GetAttributeValue <string>("returnedtypecode");
                string typeName   = view.FormattedValues["querytype"];

                CustomizationEntity viewEntity = customizationRoot.Views.Find(e => e.Name == entityName);
                if (viewEntity == null)
                {
                    viewEntity = new CustomizationEntity(entityName);
                    customizationRoot.Views.Add(viewEntity);
                }

                CustomizationType viewType = viewEntity.CustomzationTypes.Find(t => t.Name == typeName);
                if (viewType == null)
                {
                    viewType = new CustomizationType(typeName);
                    viewEntity.CustomzationTypes.Add(viewType);
                }

                viewType.Entities.Add(view);
            }
        }