Example #1
0
        public static bool Update(ProductFieldInfo field)
        {
            ProductModelInfo dataById  = ProductModel.GetDataById(field.ModelID);
            ProductFieldInfo dataById2 = ProductField.GetDataById(field.AutoID);
            bool             result;

            if (BizBase.dbo.UpdateModel <ProductFieldInfo>(field))
            {
                if (!dataById2.IsSystem)
                {
                    try
                    {
                        string text = field.DataType;
                        if (string.Compare(text, "nvarchar", true) == 0)
                        {
                            object obj = text;
                            text = string.Concat(new object[]
                            {
                                obj,
                                "(",
                                field.DataLength,
                                ")"
                            });
                        }
                        TableManager.AlterTableColumn(dataById.TableName, dataById2.FieldName, field.FieldName, text, true, field.DefaultValue);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                CacheUtils.Del("JsonLeeCMS_CacheForPROMODEL");
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
    /// <summary>
    /// Updates database representation of given form field
    /// </summary>
    /// <param name="oldFieldInfo">Form field prior to the change</param>
    /// <param name="updatedFieldInfo">Form field after the change has been made.</param>
    /// <param name="tm">Table manager allowing the database changes.</param>
    /// <param name="tableName">Name of the table to be changed.</param>
    /// <returns>Possible error message</returns>
    protected string UpdateDatabaseColumn(FormFieldInfo oldFieldInfo, FormFieldInfo updatedFieldInfo, TableManager tm, string tableName)
    {
        if (updatedFieldInfo.External)
        {
            if (!oldFieldInfo.External)
            {
                tm.DropTableColumn(tableName, oldFieldInfo.Name);
            }
        }
        else
        {
            // Validate the default value
            string errorMessage;
            string newDBDefaultValue = GetDefaultValueInDBCulture(updatedFieldInfo, out errorMessage);
            if (!String.IsNullOrEmpty(errorMessage))
            {
                return(errorMessage);
            }

            // Set column type and size
            string newColumnType = DataTypeManager.GetSqlType(updatedFieldInfo.DataType, updatedFieldInfo.Size, updatedFieldInfo.Precision);
            string oldColumnName = oldFieldInfo.Name;
            string newColumnName = updatedFieldInfo.Name;

            if (oldFieldInfo.External)
            {
                tm.AddTableColumn(tableName, newColumnName, newColumnType, updatedFieldInfo.AllowEmpty, newDBDefaultValue);
            }
            else
            {
                // Change table column
                tm.AlterTableColumn(tableName, oldColumnName, newColumnName, newColumnType, updatedFieldInfo.AllowEmpty, newDBDefaultValue);
            }
        }

        return(null);
    }