コード例 #1
0
        private bool ValidateDataRecommend()
        {
            var result               = ValidationProviderRecommend.Validate();
            var invalidControls      = ValidationProviderRecommend.GetInvalidControls();
            var firstInvalideControl = invalidControls.FirstOrDefault();

            if (firstInvalideControl != null)
            {
                var layoutItem = EntityDataLayoutControl.GetItemByControl(firstInvalideControl);
                if (layoutItem != null && layoutItem.Parent.ParentTabbedGroup != null)
                {
                    layoutItem.Parent.ParentTabbedGroup.SelectedTabPage = layoutItem.Parent;
                }
            }
            if (!result)
            {
                string caption = ResourceService.GetString("RecommendWarning");
                string text    = ResourceService.GetString("Katrin");

                DialogResult dialogResult = XtraMessageBox.Show(this,
                                                                caption,
                                                                text,
                                                                MessageBoxButtons.OKCancel,
                                                                MessageBoxIcon.Question,
                                                                MessageBoxDefaultButton.Button1);

                if (dialogResult == DialogResult.OK)
                {
                    result = true;
                }
            }
            return(result);
        }
コード例 #2
0
        public virtual bool ValidateData()
        {
            messagePanel.ResetText();
            messagePanel.Visible = false;
            var result          = ValidationProvider.Validate();
            var invalidControls = ValidationProvider.GetInvalidControls();
            var invalidMessage  = new StringBuilder();

            foreach (var invalidControl in invalidControls)
            {
                var message = ValidationProvider.GetValidationRule(invalidControl).ErrorText;
                invalidMessage.AppendLine(message);
            }

            if (invalidMessage.Length > 0)
            {
                messagePanel.Visible = true;
                messagePanel.Text    = invalidMessage.ToString();
            }

            var firstInvalideControl = invalidControls.FirstOrDefault();

            if (firstInvalideControl != null)
            {
                var layoutItem = EntityDataLayoutControl.GetItemByControl(firstInvalideControl);
                if (layoutItem != null && layoutItem.Parent.ParentTabbedGroup != null)
                {
                    layoutItem.Parent.ParentTabbedGroup.SelectedTabPage = layoutItem.Parent;
                }
            }
            return(result);
        }
コード例 #3
0
        private void LocalizeProperty(Control editor, Entity entity)
        {
            if (editor.DataBindings.Count == 0)
            {
                return;
            }
            var labels  = MetadataRepository.LocalizedLabels;
            var binding = editor.DataBindings[0];

            binding.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
            string bindingMember = binding.BindingMemberInfo.BindingMember;
            var    bindingSource = binding.DataSource as BindingSource;
            string dataMember    = bindingSource != null?bindingSource.DataMember:string.Empty;
            var    attribute     = GetEntityAttribute(entity, bindingMember);



            if (!string.IsNullOrEmpty(dataMember))
            {
                attribute = entity.Attributes
                            .FirstOrDefault(a => a.PhysicalName.Contains(dataMember));
                var relationRoles = MetadataRepository.EntityRelationshipRoles
                                    .Where(c => c.EntityId == entity.EntityId && c.RelationshipRoleType == 1 &&
                                           c.EntityRelationship.EntityRelationshipRelationships
                                           .FirstOrDefault() == null ? false :
                                           c.EntityRelationship.EntityRelationshipRelationships
                                           .First().Relationship.ReferencingAttributeId == attribute.AttributeId);
                if (relationRoles != null)
                {
                    var entityId = relationRoles.First().EntityRelationship
                                   .EntityRelationshipRelationships.First()
                                   .Relationship.ReferencedEntityId;
                    entity    = MetadataRepository.Entities.First(c => c.EntityId == entityId);
                    attribute = entity.Attributes
                                .FirstOrDefault(a => a.PhysicalName.Equals(bindingMember, StringComparison.InvariantCultureIgnoreCase));
                }
            }
            if (attribute != null)
            {
                //textbox maxlength setting
                if (editor is DevExpress.XtraEditors.TextEdit)
                {
                    TextEdit txtControl = editor as TextEdit;
                    if (attribute.MaxLength != null)
                    {
                        txtControl.Properties.MaxLength = (int)attribute.MaxLength;
                    }
                }
                //setting local language.
                int languageId = System.Threading.Thread.CurrentThread.CurrentUICulture.LCID;
                var label      = labels.FirstOrDefault(l => l.ObjectId == attribute.AttributeId && l.LanguageId == languageId);
                if (label != null)
                {
                    var layoutItem = EntityDataLayoutControl.GetItemByControl(editor);
                    layoutItem.Text = label.Label;
                }
            }
        }
コード例 #4
0
        public virtual void InitEditors(Entity entity)
        {
            Stream tream = GetDefaultLayoutStream(EntityName);

            if (tream != null)
            {
                EntityDataLayoutControl.RestoreLayoutFromStream(tream);
            }
            EntityDataLayoutControl.Controls.OfType <BaseEdit>().ToList().ForEach(editor => LocalizeProperty(editor, entity));
            EntityDataLayoutControl.Controls.OfType <RichEditControl>().ToList().ForEach(editor => LocalizeProperty(editor, entity));
            InitValidation();
        }
コード例 #5
0
        public virtual bool ValidateData()
        {
            messagePanel.ResetText();
            messagePanel.Visible = false;
            var result          = ValidationProvider.Validate();
            var invalidControls = ValidationProvider.GetInvalidControls();
            var invalidMessage  = new StringBuilder();

            _validationSort.ToList().ForEach(c => _validationSort[c.Key] = string.Empty);
            foreach (var invalidControl in invalidControls)
            {
                var message = ValidationProvider.GetValidationRule(invalidControl).ErrorText;
                if (_validationSort.Keys.Contains(invalidControl.Name))
                {
                    _validationSort[invalidControl.Name] = message;
                }
                else
                {
                    invalidMessage.AppendLine(message);
                }
            }
            foreach (var validationItem in _validationSort)
            {
                if (string.IsNullOrEmpty(validationItem.Value))
                {
                    continue;
                }
                invalidMessage.AppendLine(validationItem.Value);
            }
            if (invalidMessage.Length > 0)
            {
                messagePanel.Visible = true;
                messagePanel.Text    = invalidMessage.ToString();
            }

            var firstInvalideControl = invalidControls.FirstOrDefault();

            if (firstInvalideControl != null)
            {
                var layoutItem = EntityDataLayoutControl.GetItemByControl(firstInvalideControl);
                if (layoutItem != null && layoutItem.Parent.ParentTabbedGroup != null)
                {
                    layoutItem.Parent.ParentTabbedGroup.SelectedTabPage = layoutItem.Parent;
                }
            }
            return(result);
        }
コード例 #6
0
        private void LocalizeProperty(Control editor, Entity entity)
        {
            if (editor.DataBindings.Count == 0)
            {
                return;
            }
            var    labels        = MetadataProvider.Instance.LocalizedLabels;
            var    binding       = editor.DataBindings[0];
            string bindingMember = binding.BindingMemberInfo.BindingMember;
            var    bindingSource = binding.DataSource as BindingSource;
            string dataMember    = bindingSource != null?bindingSource.DataMember:string.Empty;
            var    attribute     = GetEntityAttribute(entity, bindingMember);

            if (!string.IsNullOrEmpty(dataMember))
            {
                attribute = entity.Attributes
                            .FirstOrDefault(a => a.PhysicalName.Contains(dataMember));
                var relationRoles = MetadataProvider.Instance.EntityRelationshipRoles
                                    .Where(c => c.EntityId == entity.EntityId && c.RelationshipRoleType == 1 &&
                                           c.EntityRelationship.EntityRelationshipRelationships
                                           .FirstOrDefault() == null ? false :
                                           c.EntityRelationship.EntityRelationshipRelationships
                                           .First().Relationship.ReferencingAttributeId == attribute.AttributeId);
                if (relationRoles != null)
                {
                    var entityId = relationRoles.First().EntityRelationship
                                   .EntityRelationshipRelationships.First()
                                   .Relationship.ReferencedEntityId;
                    entity    = MetadataProvider.Instance.EntiyMetadata.First(c => c.EntityId == entityId);
                    attribute = entity.Attributes
                                .FirstOrDefault(a => a.PhysicalName.Equals(bindingMember, StringComparison.InvariantCultureIgnoreCase));
                }
            }
            if (attribute != null)
            {
                int languageId = System.Threading.Thread.CurrentThread.CurrentUICulture.LCID;
                var label      = labels.FirstOrDefault(l => l.ObjectId == attribute.AttributeId && l.LanguageId == languageId);
                if (label != null)
                {
                    var layoutItem = EntityDataLayoutControl.GetItemByControl(editor);
                    layoutItem.Text = label.Label;
                }
            }
        }
コード例 #7
0
 public virtual void EndInit()
 {
     EntityDataLayoutControl.EndInit();
     ResumeLayout(false);
 }
コード例 #8
0
 public virtual void BeginInit()
 {
     EntityDataLayoutControl.BeginInit();
     SuspendLayout();
 }