Exemplo n.º 1
0
        static DBColum Set(this DBColum colum, int index, object newvalue)
        {
            Exception gotexceptions = null;

            Set(colum, CoreResolver.GetTime.Invoke(), index, newvalue, out gotexceptions);
            return(colum);
        }
Exemplo n.º 2
0
 static void Add(this DBColum colum, long time, object newvalue, out Exception exp)
 {
     exp = null;
     try
     {
         if (!CoreResolver.CanUse(colum, newvalue))
         {
             throw new WrongParameterCodeType("{0} type isn't acceptable in colum {1}.", CoreResolver.ReturnType(newvalue.GetType()).ToString(), colum.Name);
         }
         if (CoreResolver.UniqueDBKey(colum))
         {
             if (colum.Values.Contains(newvalue))
             {
                 throw new DuplicatedUniqueValue("{0} unique value {1} existed already.", colum.Name, newvalue);
             }
         }
         colum.Records.Add(DBColumOrderRecord.Create(DBColumOrderRecordType.Add, time, colum, newvalue));
         colum.UpdatedValue = newvalue;
         colum.Values.Add(newvalue);
     }
     catch (Exception e)
     {
         exp = e;
     }
 }
Exemplo n.º 3
0
 static object Get(this DBColum colum, long time, int index)
 {
     if (colum.Values.Count < index)
     {
         return(null);
     }
     colum.Records.Add(DBColumOrderRecord.Create(DBColumOrderRecordType.Get, time, colum.Name, colum.Values[index], colum.DefaultValue));
     return(colum.Values[index]);
 }
Exemplo n.º 4
0
        static DBTableStruct CreateColum(this DBTableStruct table, string name, object defaultvalue, bool autoincreasment = false, bool uniquekey = false)
        {
            if (table.Colums.ContainsKey(name))
            {
                throw new Exception(string.Format("already existed table colum {0}.", name));
            }
            DBColum Colum = table.Colums.GetOrAdd(name, DBColum.Create(name, defaultvalue, autoincreasment, uniquekey));

            if (OnCreateColum != null)
            {
                OnCreateColum.Invoke(table);
            }
            return(table);
        }
Exemplo n.º 5
0
        static DBColum Add(this DBColum colum, object newvalue)
        {
            Exception gotexceptions = null;

            Add(colum, CoreResolver.GetTime.Invoke(), newvalue, out gotexceptions);
            if (gotexceptions is DuplicatedUniqueValue)
            {
                int index = colum.Values.FindIndex(p => p == newvalue);
                if (index != -1)
                {
                    Set(colum, CoreResolver.GetTime.Invoke(), index, newvalue, out gotexceptions);
                }
            }
            return(colum);
        }
Exemplo n.º 6
0
 public static DBColumOrderRecord Create(DBColumOrderRecordType type, long time, DBColum colum, object newvalue)
 {
     return(new DBColumOrderRecord()
     {
         Type = type,
         Time = time,
         Colum = colum.Name,
         oldValue = colum.UpdatedValue,
         newValue = newvalue
     });
 }