Example #1
0
        public EditPropertyForm(DomainObjectInquiry inquiry, DomainObjectConfig obj, DomainPropertyConfig prop)
        {
            InitializeComponent();

            m_inquiry = inquiry;
            m_object = obj;
            m_property = prop;

            FillDataType();

            if (m_property != null)
            {
                txtCode.Text = m_property.Code;
                txtCode.Enabled = false;

                txtCodeName.Text = m_property.CodeName;
                txtDescription.Text = m_property.Description;

                txtDataType.SelectedItem = m_property.DataType;
                txtDataType.Enabled = false;

                txtLength.Value = m_property.Size;
                txtLength.Enabled = false;
            }
        }
 public override void DeleteObjectProperty(DomainPropertyConfig propConfig)
 {
     throw new NotImplementedException();
 }
        public override void SaveObjectProperty(DomainPropertyConfig propConfig)
        {
            DbCommonCommand command = m_editPropertyCommand.Value;

            command["ID"].Value = propConfig.Id;
            command["CODE_NAME"].Value = propConfig.CodeName;
            command["DESCRIPTION"].Value = propConfig.Description;
            command["DEFAULT_VALUE"].Value = propConfig.DefaultValue;
            command.ExecuteNonQuery(SessionIdentifier.SHARED_SESSION);
        }
        public override DomainObjectConfigCollection LoadObject()
        {
            DbCommonCommand command = null;
            IDbCommonDataReader reader = null;

            m_objectConfig = new DomainObjectConfigCollection();

            #region Загрузка объектов
            command = m_loadObjectCommand.Value;

            using (reader = command.ExecuteReader(SessionIdentifier.SHARED_SESSION))
            {
                while (reader.Read())
                {
                    long id = reader.GetValue<long>(0);
                    string code = reader.GetValue<String>(1);
                    string description = reader.GetValue<String>(2);
                    string tableName = reader.GetValue<String>(3);
                    string idField = reader.GetValue<String>(4);
                    string codeName = reader.GetValue<String>(5);

                    DomainObjectConfig configObject = new DomainObjectConfig(id, code, description, tableName, idField, codeName);
                    m_objectConfig.Add(configObject);
                }
                reader.Close();
            }
            #endregion

            #region Загрузка свойств
            command = m_loadPropertyCommand.Value;

            using (reader = command.ExecuteReader(SessionIdentifier.SHARED_SESSION))
            {
                while (reader.Read())
                {
                    long id = reader.GetValue<long>(0);
                    string code = reader.GetValue<String>(1);
                    string description = reader.GetValue<String>(2);
                    string ownerCode = reader.GetValue<String>(3);

                    string dataTypeName = reader.GetValue<String>(4);
                    string assemblyFile = reader.GetValue<String>(5);
                    Type dataType = GetValueType(assemblyFile, dataTypeName);

                    string filedName = reader.GetValue<String>(6);
                    object defaultValue = reader.GetValue(7, typeof(object));
                    int length = reader.GetValue<Int32>(8);
                    string codeName = reader.GetValue<String>(9);

                    DomainObjectConfig owner = m_objectConfig[ownerCode];
                    DomainPropertyConfig property = new DomainPropertyConfig(id, code, description, owner, dataType, filedName, defaultValue, length, codeName);

                    owner.Property.Add(property);
                }
                reader.Close();
            }
            #endregion

            return m_objectConfig;
        }
        public override void DeleteObjectProperty(DomainPropertyConfig propConfig)
        {
            DbCommonCommand command = m_removePropertyCommand.Value;

            command["ID"].Value = propConfig.Id;
            command.ExecuteNonQuery(SessionIdentifier.SHARED_SESSION);
        }
        public override void CreateObjectProperty(DomainPropertyConfig propConfig)
        {
            DbCommonCommand command = m_createPropertyCommand.Value;

            command["ID"].Value = propConfig.Id;
            command["CODE"].Value = propConfig.Code;
            command["CODE_NAME"].Value = propConfig.CodeName;
            command["DESCRIPTION"].Value = propConfig.Description;
            command["ID_ORM_CONFIG_OBJECT"].Value = propConfig.Owner.Id;
            command["DATA_TYPE"].Value = propConfig.DataType.ToString();
            command["ASSEMBLY_FILE"].Value = propConfig.DataType.Assembly.ManifestModule.Name;
            command["FIELD_NAME"].Value = propConfig.FieldName;
            command["DEFAULT_VALUE"].Value = propConfig.DefaultValue;
            command["FIELD_LENGTH"].Value = propConfig.Size;
            command.ExecuteNonQuery(SessionIdentifier.SHARED_SESSION);
        }
Example #7
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                string code = txtCode.Text.Trim();
                string codeName = txtCodeName.Text.Trim();

                if (String.IsNullOrEmpty(code))
                {
                    MessageBox.Show(EditPropertyFormLocalization.EnterPropertyCodeMessage);
                    return;
                }

                if (String.IsNullOrEmpty(codeName))
                {
                    MessageBox.Show(EditPropertyFormLocalization.EnterPropertyFieldNameMessage);
                    return;
                }

                if (m_property == null && m_object.Property.Contains(code))
                {
                    MessageBox.Show(GetPropertyAlreadyExistMessage(code));
                    return;
                }

                Type dataType = (Type)txtDataType.SelectedItem;
                string description = txtDescription.Text.Trim();
                object defaultValue = null;
                int length = (int)txtLength.Value;

                try
                {
                    defaultValue = GetDefaultValue();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(String.Format(EditPropertyFormLocalization.GetDefaultValueErrorMessage, ex.Message));
                    return;
                }

                if (m_property == null)
                {
                    m_property = m_inquiry.CreateProperty(m_object, code, description, dataType, String.Format("P_{0}", code), defaultValue, length, codeName);
                }
                else
                {
                    m_inquiry.SaveProperty(m_property, codeName, description, defaultValue);
                }

                DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message);
            }
        }
 private void AppendPropertyConfigNode(DomainObjectInquiry inquiry, TreeListNode objPropertiesNode, DomainPropertyConfig prop)
 {
     AppendNode(objPropertiesNode, GetNodeTitle(prop), new ObjectExplorerNodeTag(inquiry, eObjectExplorerNode.ObjectPropertyConfig, prop));
 }
 public abstract void SaveObjectProperty(DomainPropertyConfig propConfig);
 public PropertyConfigArgs(DomainPropertyConfig property)
 {
     Property = property;
 }
 public EditPropertyConfigArgs(DomainPropertyConfig property, string prevCodeName)
     : base(property)
 {
     PrevCodeName = prevCodeName;
 }
        public void SaveProperty(DomainPropertyConfig property, string newCodeName, string newDescription, object newDefaultValue)
        {
            if (!Utils.CheckEnglishString(newCodeName))
            {
                throw new ArgumentOutOfRangeException("newCodeName", Resources.OnlyLatinString);
            }

            string prevCodeName = property.CodeName;
            property.Update(newCodeName, newDescription, newDefaultValue);

            m_provider.SaveObjectProperty(property);

            if (EditPropertyCompleted != null)
                EditPropertyCompleted(this, new EditPropertyConfigArgs(property, prevCodeName));

            IsModified = true;
        }
        public void DeleteProperty(DomainPropertyConfig property)
        {
            m_provider.DeleteObjectProperty(property);

            DomainObjectConfig baseObject = AObject[property.Owner.Code];
            Connection.RemoveTableField(baseObject.TableName, property.FieldName);

            baseObject.Property.Delete(property.Code);

            if (DeletePropertyCompleted != null)
                DeletePropertyCompleted(this, new PropertyConfigArgs(property));

            IsModified = true;
        }
        public DomainPropertyConfig CreateProperty(DomainObjectConfig baseObject, string code, string description, Type dataType, string fieldName, object defaultValue, int length, string codeName)
        {
            if (!Utils.CheckEnglishString(code))
            {
                throw new ArgumentOutOfRangeException("code", Resources.OnlyLatinString);
            }

            if (!Utils.CheckEnglishString(fieldName))
            {
                throw new ArgumentOutOfRangeException("fieldName", Resources.OnlyLatinString);
            }

            if (!Utils.CheckEnglishString(codeName))
            {
                throw new ArgumentOutOfRangeException("codeName", Resources.OnlyLatinString);
            }

            if (baseObject.Property.Contains(code))
                throw new DomainException(String.Format("Свойство с кодом '{0}' уже существует.", code));

            long newId = Connection.NewSequence();
            DomainPropertyConfig property = new DomainPropertyConfig(newId, code, description, baseObject, dataType, fieldName, defaultValue, length, codeName);

            m_provider.CreateObjectProperty(property);

            Connection.AddTableField(baseObject.TableName, fieldName, dataType, length, defaultValue);

            baseObject.Property.Add(property);

            if (CreatePropertyCompleted != null)
                CreatePropertyCompleted(this, new PropertyConfigArgs(property));

            IsModified = true;

            return property;
        }
        public static string DomainPropertyCode(DomainPropertyConfig propConfig)
        {
            CodeMemberField propertyCodeConst = null;
            CodeMemberProperty prop = null;
            DomainPropertyCode(propConfig, out propertyCodeConst, out prop);

            CodeDomProvider provider = CreateProvider();
            CodeGeneratorOptions createGeneratorOptions = CreateGeneratorOptions();

            StringBuilder resultCode = new StringBuilder();
            using (StringWriter sourceWriter = new StringWriter(resultCode))
            {
                provider.GenerateCodeFromMember(propertyCodeConst, sourceWriter, createGeneratorOptions);
                provider.GenerateCodeFromMember(prop, sourceWriter, createGeneratorOptions);
            }

            return resultCode.ToString();
        }
        private static void DomainPropertyCode(DomainPropertyConfig propConfig, out CodeMemberField propertyCodeConst, out CodeMemberProperty prop)
        {
            string propConstName = String.Format("Prop{0}", propConfig.CodeName);
            propertyCodeConst = new CodeMemberField
            {
                Attributes = MemberAttributes.Public | MemberAttributes.Const,
                Name = propConstName,
                Type = new CodeTypeReference(typeof(String)),
                InitExpression = new CodePrimitiveExpression(propConfig.Code)
            };

            SetSummaryComment(propertyCodeConst, String.Format("Код свойства '{0}'", propConfig.Description));

            prop = new CodeMemberProperty()
            {
                Name = propConfig.CodeName,
                Attributes = MemberAttributes.Public | MemberAttributes.Final,
                Type = new CodeTypeReference(propConfig.DataType)
            };

            CodeArrayIndexerExpression propIndexer = new CodeArrayIndexerExpression(
                            new CodeVariableReferenceExpression(PropertiesField),
                            new CodeVariableReferenceExpression(propConstName));

            prop.GetStatements.Add(new CodeMethodReturnStatement(new CodeCastExpression(propConfig.DataType, new CodeFieldReferenceExpression(propIndexer, PropertyValueField))));

            prop.SetStatements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression(propIndexer, PropertyValueField), new CodePropertySetValueReferenceExpression()));
            SetSummaryComment(prop, propConfig.Description);
        }
Example #17
0
 public void DeletePropertyConfig(DomainObjectInquiry inquiry, DomainPropertyConfig property)
 {
     if (MessageBox.Show(String.Format(UILocalization.DeleteEntityObjectPropertyQuestion, property.Code), UILocalization.DeleteEntityObjectPropertyCaption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         inquiry.DeleteProperty(property);
     }
 }
 private static string GetNodeTitle(DomainPropertyConfig prop)
 {
     return String.Format("{0} ({1})", prop.Code, prop.Description);
 }
Example #19
0
        public void EditPropertyConfig(DomainObjectInquiry inquiry, DomainPropertyConfig property)
        {
            DomainObjectConfig parentObject = inquiry.AObject[property.Owner.Code];

            using (EditPropertyForm form = new EditPropertyForm(inquiry, parentObject, property))
            {
                form.ShowDialog();
            }
        }