Exemple #1
0
        public SystemComparer(ConnectionDetail sourceConnection, ConnectionDetail targetConnection)
        {
            SourceCustomizationRoot = new CustomizationRoot();
            TargetCustomizationRoot = new CustomizationRoot();

            _sourceConnection = sourceConnection;
            _targetConnection = targetConnection;
        }
Exemple #2
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);
            }
        }
Exemple #3
0
        public void RetrieveMetadata(ConnectionType connectionType, bool allEntityFilter, Action <int, string> reportProgress)
        {
            reportProgress(0, $"Fetching Entity Metadata from {connectionType.ToString()}");

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

            // Retrieve the MetaData.
            List <EntityMetadata> entitiesMetadata = crmServiceClient.GetAllEntityMetadata(true, allEntityFilter ? EntityFilters.Attributes : EntityFilters.All);

            customizationRoot.EntitiesRaw = entitiesMetadata;
        }
Exemple #4
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);
            }
        }
Exemple #5
0
        public void RetrieveOrganization(ConnectionType connectionType, Action <int, string> reportProgress)
        {
            CrmServiceClient  crmServiceClient = GetCrmServiceClient(connectionType);
            CustomizationRoot customzationRoot = GetCustomizationRoot(connectionType);

            QueryExpression query = new QueryExpression
            {
                EntityName = "organization",
                ColumnSet  = new ColumnSet(true),
                PageInfo   = new PagingInfo
                {
                    Count        = 5000,
                    PageNumber   = 1,
                    PagingCookie = null
                }
            };

            reportProgress(0, $"Retrieving and processing Organization data from {connectionType.ToString()}");
            customzationRoot.Organizations = ExecuteQueryWithPaging(query, crmServiceClient);
        }