示例#1
0
文件: Tree.cs 项目: yarivat/Admin
                                            FROM    v"; //WHERE level < 3

        public string AddChild(string parentKey, string name, BeforeCreateEventHandler bfCreate, BeforeCreateInDatabaseEventHandler bfDbCreate, AfterCreateEventHandler afCreate, AfterCreateEventHandler afCreateAndCommit)
        {
            //string sql = "INSERT INTO {0} ([{1}],[{2}]) VALUES ('{3}','{4}')";
            //string query = string.Format(sql, view.DataTable.TableName, view.TreeRelatedFieldName, view.DisplayColumn,parentKey, name);

            Dictionary <string, object> values = new Dictionary <string, object>();

            values.Add(view.TreeRelatedFieldName, parentKey);
            values.Add(view.DisplayColumn, name);

            DataAccess.SqlAccess da = new DataAccess.SqlAccess();

            int?id = da.Create(view, values, null, bfCreate, bfDbCreate, afCreate, afCreateAndCommit);

            if (id.HasValue && id.Value > 0)
            {
                return(id.Value.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
示例#2
0
        public static DataRow Create(this View view, Dictionary <string, object> values, string insertAbovePK, BeforeCreateEventHandler beforeCreateCallback, BeforeCreateInDatabaseEventHandler beforeCreateInDatabaseEventHandler, AfterCreateEventHandler afterCreateBeforeCommitCallback, AfterCreateEventHandler afterCreateAfterCommitCallback)
        {
            if (!view.AllowCreate && !view.AllowDuplicate)
            {
                throw new AccessViolationException();
            }

            if (!view.SystemView)
            {
                string[] fields = ValidateTextLength(view, values);
                if (fields.Length > 0)
                {
                    throw new ExceedLengthException(fields);
                }
            }
            return(GetDataTableAccess(view).GetNewRow(view, values, insertAbovePK, beforeCreateCallback, beforeCreateInDatabaseEventHandler, afterCreateBeforeCommitCallback, afterCreateAfterCommitCallback));
        }
示例#3
0
 public static int?Create(this View view, Dictionary <string, object> values, string insertAbovePK, BeforeCreateEventHandler beforeCreateCallback, BeforeCreateInDatabaseEventHandler beforeCreateInDatabaseEventHandler, AfterCreateEventHandler afterCreateBeforeCommitCallback, AfterCreateEventHandler afterCreateAfterCommitCallback, IDbCommand command, out bool roolback)
 {
     if (!view.AllowCreate && !view.AllowDuplicate)
     {
         throw new AccessViolationException();
     }
     return(GetDataTableAccess(view).Create(view, values, false, insertAbovePK, beforeCreateCallback, beforeCreateInDatabaseEventHandler, afterCreateBeforeCommitCallback, afterCreateAfterCommitCallback, (System.Data.SqlClient.SqlCommand)command, out roolback));
 }
示例#4
0
        public DataRow CreateRow(View view, string insertAbovePK, Json.View jsonView, BeforeCreateEventHandler beforeCreateCallback, BeforeCreateInDatabaseEventHandler beforeCreateInDatabaseCallback, AfterCreateEventHandler afterCreateBeforeCommitCallback, AfterCreateEventHandler afterCreateAfterCommitCallback)
        {
            Dictionary <string, object> values = new Dictionary <string, object>();

            foreach (Json.Field jsonField in jsonView.Fields.Values)
            {
                object value;
                if (view.Fields.ContainsKey(jsonField.Name) && view.Fields[jsonField.Name].FieldType == FieldType.Column && ((ColumnField)view.Fields[jsonField.Name]).DataColumn.DataType.Equals(typeof(byte[])))
                {
                    value = ((ColumnField)view.Fields[jsonField.Name]).ConvertFromString(jsonField.Value.ToString());
                }
                else
                {
                    value = LocalizeValue(view, jsonField.Name, jsonField.Value);
                }
                values.Add(jsonField.Name, value);
            }
            DataRow dataRow = view.Create(values, insertAbovePK, beforeCreateCallback, beforeCreateInDatabaseCallback, afterCreateBeforeCommitCallback, afterCreateAfterCommitCallback);

            return(dataRow);
        }