Пример #1
0
        public FormatTextTableHandler AddLineIfNotEqual(string fieldName, BooleanManagedProperty value1, BooleanManagedProperty value2)
        {
            var valueString1 = value1 != null?value1.Value.ToString() : "null";

            var valueString2 = value2 != null?value2.Value.ToString() : "null";

            if (valueString1 != valueString2)
            {
                this.AddLine(fieldName, valueString1, valueString2);
            }

            return(this);
        }
Пример #2
0
        private bool IsEqualBooleanManagedProperty(BooleanManagedProperty x, BooleanManagedProperty y)
        {
            if (x == null && y != null)
            {
                return(false);
            }
            else if (x != null && y == null)
            {
                return(false);
            }
            else if (x != null && y != null)
            {
                return(x.Value == y.Value && x.CanBeChanged == y.CanBeChanged);
            }

            return(true);
        }
        public BooleanManagedPropertyAttributeMetadataControl(ManagedPropertyAttributeMetadata attributeMetadata, BooleanManagedProperty initialValue, bool allwaysAddToEntity, bool showRestoreButton)
        {
            InitializeComponent();

            AttributeMetadataControlFactory.SetGroupBoxNameByAttributeMetadata(gbAttribute, attributeMetadata);

            this._initialValue       = initialValue;
            this._allwaysAddToEntity = allwaysAddToEntity;
            this.AttributeMetadata   = attributeMetadata;

            FillComboBox();

            Views.WindowBase.SetElementsEnabledAndVisible(allwaysAddToEntity, btnRemoveControl);

            Views.WindowBase.SetElementsEnabledAndVisible(showRestoreButton, btnRestore);

            Views.WindowBase.SetElementsVisible(showRestoreButton, chBChanged);
        }
Пример #4
0
        public BooleanManagedPropertyAttributeMetadataControl(bool fillAllways, ManagedPropertyAttributeMetadata attributeMetadata, BooleanManagedProperty initialValue)
        {
            InitializeComponent();

            AttributeMetadataControlFactory.SetGroupBoxNameByAttributeMetadata(gbAttribute, attributeMetadata);

            this._initialValue     = initialValue;
            this._fillAllways      = fillAllways;
            this.AttributeMetadata = attributeMetadata;

            FillComboBox();

            btnRemoveControl.IsEnabled = _fillAllways;

            btnRemoveControl.Visibility = btnRemoveControl.IsEnabled ? Visibility.Visible : Visibility.Collapsed;
            chBChanged.Visibility       = _fillAllways ? Visibility.Collapsed : Visibility.Visible;

            btnRestore.IsEnabled  = !_fillAllways;
            btnRestore.Visibility = btnRestore.IsEnabled ? Visibility.Visible : Visibility.Collapsed;
        }
 public BooleanManagedPropertyInfo(BooleanManagedProperty property)
 {
     this.property = property;
 }
Пример #6
0
        public UserControl CreateControlForAttribute(
            IWriteToOutput iWriteToOutput
            , IOrganizationServiceExtented service
            , EntityMetadata entityMetadata
            , AttributeMetadata attributeMetadata
            , Entity entity
            , object value
            , bool allwaysAddToEntity
            , bool showRestoreButton
            )
        {
            if (attributeMetadata is MemoAttributeMetadata memoAttrib)
            {
                string initialValue = null;

                if (value != null && value is string)
                {
                    initialValue = (string)value;
                }

                return(new MemoAttributeMetadataControl(memoAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is StringAttributeMetadata stringAttrib)
            {
                string initialValue = null;

                if (value != null && value is string)
                {
                    initialValue = (string)value;
                }

                return(new StringAttributeMetadataControl(stringAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is IntegerAttributeMetadata intAttrib)
            {
                int?initialValue = null;

                if (value != null && value is int)
                {
                    initialValue = (int)value;
                }

                return(new IntegerAttributeMetadataControl(intAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is BigIntAttributeMetadata bigIntAttrib)
            {
                long?initialValue = null;

                if (value != null && value is long)
                {
                    initialValue = (long)value;
                }

                return(new BigIntAttributeMetadataControl(bigIntAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is DecimalAttributeMetadata decimalAttrib)
            {
                decimal?initialValue = null;

                if (value != null && value is decimal)
                {
                    initialValue = (decimal)value;
                }

                return(new DecimalAttributeMetadataControl(decimalAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is DoubleAttributeMetadata doubleAttrib)
            {
                double?initialValue = null;

                if (value != null && value is double)
                {
                    initialValue = (double)value;
                }

                return(new DoubleAttributeMetadataControl(doubleAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is MoneyAttributeMetadata moneyAttrib)
            {
                Money initialValue = null;

                if (value != null && value is Money)
                {
                    initialValue = (Money)value;
                }

                return(new MoneyAttributeMetadataControl(moneyAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is DateTimeAttributeMetadata dateTimeAttrib)
            {
                DateTime?initialValue = null;

                if (value != null && value is DateTime)
                {
                    initialValue = (DateTime)value;
                }

                return(new DateTimeAttributeMetadataControl(dateTimeAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is BooleanAttributeMetadata boolAttrib)
            {
                bool?initialValue = null;

                if (value != null && value is bool boolValue)
                {
                    initialValue = boolValue;
                }

                return(new BooleanAttributeMetadataControl(boolAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is ManagedPropertyAttributeMetadata managedPropertyAttributeMetadata)
            {
                if (managedPropertyAttributeMetadata.ValueAttributeTypeCode == AttributeTypeCode.Boolean)
                {
                    BooleanManagedProperty initialValue = null;

                    if (value != null && value is BooleanManagedProperty booleanManagedProperty)
                    {
                        initialValue = booleanManagedProperty;
                    }

                    return(new BooleanManagedPropertyAttributeMetadataControl(managedPropertyAttributeMetadata, initialValue, allwaysAddToEntity, showRestoreButton));
                }
            }

            if (attributeMetadata is PicklistAttributeMetadata picklistAttrib)
            {
                int?initialValue = null;

                if (value != null && value is OptionSetValue optionSetValue)
                {
                    initialValue = optionSetValue.Value;
                }

                string initialFormatedValue = string.Empty;

                if (entity != null &&
                    entity.FormattedValues != null &&
                    entity.FormattedValues.ContainsKey(picklistAttrib.LogicalName) &&
                    !string.IsNullOrEmpty(entity.FormattedValues[picklistAttrib.LogicalName])
                    )
                {
                    initialFormatedValue = entity.FormattedValues[picklistAttrib.LogicalName];
                }

                return(new PicklistAttributeMetadataControl(picklistAttrib, initialValue, initialFormatedValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is MultiSelectPicklistAttributeMetadata multiSelectPicklistAttributeMetadata)
            {
                OptionSetValueCollection initialValue = null;

                if (value != null && value is OptionSetValueCollection optionSetValueCollection)
                {
                    initialValue = optionSetValueCollection;
                }

                return(new MultiSelectPicklistAttributeMetadataControl(multiSelectPicklistAttributeMetadata, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is StatusAttributeMetadata statusAttrib)
            {
                var stateAttrib = entityMetadata.Attributes.OfType <StateAttributeMetadata>().FirstOrDefault();

                if (stateAttrib != null)
                {
                    int?initialValueStatus = null;
                    int?initialValueState  = null;

                    if (value != null && value is OptionSetValue optionSetValueStatus)
                    {
                        initialValueStatus = optionSetValueStatus.Value;
                    }

                    string statusFormatedValue = string.Empty;

                    if (entity != null)
                    {
                        if (entity.Attributes.ContainsKey(stateAttrib.LogicalName) &&
                            entity.Attributes[stateAttrib.LogicalName] != null &&
                            entity.Attributes[stateAttrib.LogicalName] is OptionSetValue optionSetValueState
                            )
                        {
                            initialValueState = optionSetValueState.Value;
                        }

                        if (entity.FormattedValues != null &&
                            entity.FormattedValues.ContainsKey(statusAttrib.LogicalName) &&
                            !string.IsNullOrEmpty(entity.FormattedValues[statusAttrib.LogicalName])
                            )
                        {
                            statusFormatedValue = entity.FormattedValues[statusAttrib.LogicalName];
                        }
                    }

                    return(new StatusAttributeMetadataControl(statusAttrib, stateAttrib, initialValueStatus, initialValueState, statusFormatedValue, allwaysAddToEntity, showRestoreButton));
                }
            }

            if (attributeMetadata is LookupAttributeMetadata lookupAttrib)
            {
                EntityReference initialValue = null;

                if (value != null && value is EntityReference)
                {
                    initialValue = (EntityReference)value;
                }

                return(new LookupAttributeMetadataControl(iWriteToOutput, service, lookupAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is EntityNameAttributeMetadata entityNameAttrib)
            {
                string initialValue = null;

                if (value != null && value is string entityName)
                {
                    initialValue = entityName;
                }

                return(new EntityNameAttributeMetadataControl(service.ConnectionData, entityNameAttrib, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            if (attributeMetadata is UniqueIdentifierAttributeMetadata uniqueAttrib ||
                attributeMetadata.AttributeType == AttributeTypeCode.Uniqueidentifier
                )
            {
                Guid?initialValue = null;

                if (value != null && value is Guid valueGuid)
                {
                    initialValue = valueGuid;
                }

                return(new UniqueIdentifierAttributeMetadataControl(attributeMetadata, initialValue, allwaysAddToEntity, showRestoreButton));
            }

            return(null);
        }
 public BooleanManagedPropertyInfo(BooleanManagedProperty property)
 {
     this.property = property;
 }
Пример #8
0
 private static bool CheckMetadata(CheckState checkstate, BooleanManagedProperty metafield)
 {
     return(CheckMetadata(checkstate, metafield?.Value));
 }
Пример #9
0
        public void RegisterDataSource()
        {
            var languageCode  = GetLanguageCode();
            var propertyFalse = new BooleanManagedProperty(false);
            var propertyTrue  = new BooleanManagedProperty(true);

            var request = new CreateEntityRequest
            {
                HasActivities    = false,
                PrimaryAttribute = new StringAttributeMetadata
                {
                    SchemaName    = $"{DataSourceName}Name",
                    RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
                    MaxLength     = 100,
                    DisplayName   = new Label(json.displayname, languageCode),
                    ExternalName  = json.displayname
                },
                Entity = new EntityMetadata
                {
                    DataProviderId                     = new Guid?(new Guid("B2112A7E-B26C-42F7-9B63-9A809A9D716F")),
                    IsActivity                         = new bool?(false),
                    SchemaName                         = DataSourceName,
                    DisplayName                        = new Label(json.displayname, languageCode),
                    DisplayCollectionName              = new Label(json.pluralname, languageCode),
                    ExternalCollectionName             = json.pluralname.Replace(" ", string.Empty),
                    ExternalName                       = json.displayname.Replace(" ", string.Empty),
                    OwnershipType                      = new OwnershipTypes?(OwnershipTypes.OrganizationOwned),
                    IsAvailableOffline                 = new bool?(false),
                    Description                        = new Label(string.Empty, languageCode),
                    IsBusinessProcessEnabled           = new bool?(false),
                    IsVisibleInMobile                  = propertyFalse,
                    IsVisibleInMobileClient            = propertyFalse,
                    IsReadOnlyInMobileClient           = propertyFalse,
                    IsOfflineInMobileClient            = propertyFalse,
                    IsAuditEnabled                     = propertyFalse,
                    IsSLAEnabled                       = new bool?(false),
                    IsBPFEntity                        = new bool?(false),
                    IsDuplicateDetectionEnabled        = propertyFalse,
                    IsConnectionsEnabled               = propertyFalse,
                    IsActivityParty                    = new bool?(false),
                    IsReadingPaneEnabled               = new bool?(false),
                    IsQuickCreateEnabled               = new bool?(false),
                    AutoCreateAccessTeams              = new bool?(false),
                    CanCreateCharts                    = propertyFalse,
                    IsMailMergeEnabled                 = propertyFalse,
                    ChangeTrackingEnabled              = new bool?(false),
                    CanChangeTrackingBeEnabled         = propertyFalse,
                    IsEnabledForExternalChannels       = new bool?(false),
                    EntityHelpUrlEnabled               = new bool?(false),
                    IsCustomizable                     = propertyTrue,
                    IsRenameable                       = propertyTrue,
                    IsMappable                         = propertyFalse,
                    SyncToExternalSearchIndex          = new bool?(false),
                    CanEnableSyncToExternalSearchIndex = propertyFalse,
                    CanModifyAdditionalSettings        = propertyFalse,
                    CanChangeHierarchicalRelationship  = propertyFalse
                }
            };

            if (request.Parameters == null)
            {
                request.Parameters = new ParameterCollection();
            }
            if (request.Parameters.ContainsKey("SolutionUniqueName"))
            {
                request.Parameters["SolutionUniqueName"] = json.solution;
            }
            else
            {
                request.Parameters.Add("SolutionUniqueName", json.solution);
            }
            var response = (CreateEntityResponse)crmServiceClient.Execute(request);
            var entityId = response.EntityId;
            var retrieveEntityRequest = new RetrieveEntityRequest()
            {
                EntityFilters = EntityFilters.All,
                MetadataId    = entityId
            };
            EntityMetadata entityMetadata = ((RetrieveEntityResponse)crmServiceClient.Execute(retrieveEntityRequest)).EntityMetadata;

            //Update field Id
            var requestId = new RetrieveAttributeRequest()
            {
                EntityLogicalName = entityMetadata.LogicalName,
                LogicalName       = string.Format("{0}id", entityMetadata.LogicalName)
            };
            var attributeMetadataId = ((RetrieveAttributeResponse)crmServiceClient.Execute(requestId)).AttributeMetadata;

            attributeMetadataId.ExternalName = $"{DataSourceName}Id";
            var updateRequestId = new UpdateAttributeRequest()
            {
                Attribute   = attributeMetadataId,
                EntityName  = entityMetadata.LogicalName,
                MergeLabels = false
            };

            crmServiceClient.Execute(updateRequestId);
            //Update field name
            var requestName = new RetrieveAttributeRequest()
            {
                EntityLogicalName = entityMetadata.LogicalName,
                LogicalName       = string.Format("{0}name", DataSourceName.ToLower())
            };
            var attributeMetadataName = ((RetrieveAttributeResponse)crmServiceClient.Execute(requestName)).AttributeMetadata;

            attributeMetadataName.ExternalName = $"{DataSourceName}Name";
            var updateRequestName = new UpdateAttributeRequest()
            {
                Attribute   = attributeMetadataName,
                EntityName  = entityMetadata.LogicalName,
                MergeLabels = false
            };

            crmServiceClient.Execute(updateRequestName);

            try
            {
                PublishAllXmlRequest  publishAllXmlRequest  = new PublishAllXmlRequest();
                PublishAllXmlResponse publishAllXmlResponse = (PublishAllXmlResponse)crmServiceClient.Execute(publishAllXmlRequest);
            }
            catch
            {
            }
        }
Пример #10
0
        public FormatTextTableHandler AddEntityMetadataString(string fieldName, BooleanManagedProperty value)
        {
            var valueString = value != null?value.Value.ToString() : "null";

            return(this.AddLineNotNull(fieldName, valueString));
        }
Пример #11
0
 public static bool GetValueOrDefault(this BooleanManagedProperty oBoolManProp, bool defaultValue = false) {
     if (oBoolManProp == null)
         return defaultValue;
     return oBoolManProp.Value;
 }