Пример #1
0
 public static bool Include(string[] keys, ColumnMode mode, string column)
 {
     return(Include <string>(keys, mode, column, (value) =>
     {
         return value;
     }));
 }
Пример #2
0
 public static DataColumn[] Exclude(DataColumn[] keys, ColumnMode mode, params DataColumn[] columns)
 {
     return(Exclude <DataColumn>(keys, mode, columns, (value) =>
     {
         return value.Column;
     }));
 }
Пример #3
0
 public static bool Include(DataColumn[] keys, ColumnMode mode, DataColumn column)
 {
     return(Include <DataColumn>(keys, mode, column, (value) =>
     {
         return value.Column;
     }));
 }
Пример #4
0
 public static string[] Exclude(string[] keys, ColumnMode mode, params string[] columns)
 {
     return(Exclude <string>(keys, mode, columns, (value) =>
     {
         return value;
     }));
 }
Пример #5
0
 public SchemaColumn(int order, string table, string name, int maxLength, DbType dbType,
                     PropertyInfo propertyInfo, Type propertyType, Type declaringType, Type reflectedType, Type converterType,
                     ColumnMode mode, bool canRead, bool canWrite, bool isNullable, bool isPrimary,
                     bool isIdentity, int identitySeed, int increment, string?defaultValue)
 {
     this.order         = order;
     this.table         = table;
     this.name          = name;
     this.maxLength     = maxLength;
     this.dbType        = dbType;
     this.propertyInfo  = propertyInfo;
     this.propertyType  = propertyType;
     this.declaringType = declaringType;
     this.reflectedType = reflectedType;
     this.converterType = converterType;
     this.mode          = mode;
     this.canRead       = canRead;
     this.canWrite      = canWrite;
     this.isNullable    = isNullable;
     this.isPrimary     = isPrimary;
     this.isIdentity    = isIdentity;
     this.identitySeed  = identitySeed;
     this.increment     = increment;
     this.defaultValue  = defaultValue;
 }
Пример #6
0
        private UpdateBucket GetUpdateSql(DataSource ds, ColumnMode mode, DataColumn[] keys, DataWhereQueue ps)
        {
            Type       gtype  = typeof(TDbTable <>).MakeGenericType(GetType());
            MethodInfo method = gtype.GetMethod("GetUpdateSql", BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.NonPublic);

            return((UpdateBucket)method.Invoke(null, new object[] { ds, this, mode, keys, ps }));
        }
Пример #7
0
 public FileListPaneSettings(string directory, string sortByField, ListSortDirection sortDirection, ColumnMode columnMode)
 {
     Directory = directory;
     SortByField = sortByField;
     SortDirection = sortDirection;
     DisplayColumnMode = columnMode;
 }
Пример #8
0
        public static T[] Exclude <T>(T[] keys, ColumnMode mode, T[] columns, KeyHandler <T> action)
        {
            if (columns == null)
            {
                throw new ArgumentNullException("columns");
            }
            if (columns.Length == 0)
            {
                throw new ArgumentException();
            }

            if (keys != null && keys.Length > 0)
            {
                Dictionary <string, T> dict = new Dictionary <string, T>(keys.Length);
                foreach (T key in keys)
                {
                    dict.Add(action(key), key);
                }

                string temp;
                T      value;
                if (mode == ColumnMode.Include)
                {
                    foreach (T column in columns)
                    {
                        temp = action(column);
                        if (dict.TryGetValue(temp, out value))
                        {
                            dict.Remove(temp);
                        }
                    }
                }
                else
                {
                    foreach (T column in columns)
                    {
                        temp = action(column);
                        if (!dict.TryGetValue(temp, out value))
                        {
                            dict.Add(temp, column);
                        }
                    }
                }

                T[] array = new T[dict.Count];
                dict.Values.CopyTo(array, 0);
                return(array);
            }
            else
            {
                if (mode == ColumnMode.Include)
                {
                    return(null);
                }
                else
                {
                    return(columns);
                }
            }
        }
Пример #9
0
        protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
        {
            //Product product = Product.GetById(ds, ProductId);
            //ProductOrderSettlement settlement = new ProductOrderSettlement
            //{
            //    OrderId = OrderId,
            //    ProductId = ProductId,
            //    CostPrice = product.CostPrice,
            //    Settlement = product.Settlement,
            //    RoyaltyRate = product.RoyaltyRate
            //};
            //if (product.Wholesale && product.WholesalePrice > 0)
            //{
            //    settlement.ProductType = EProductType.Wholesale;
            //}
            //else if (product.DiscountState == DiscountState.Activated && product.DiscountBeginTime <DateTime.Now && product.DiscountEndTime> DateTime.Now)
            //{
            //    settlement.ProductType = EProductType.GroupBuy;
            //}
            //else
            //{
            //    settlement.ProductType = EProductType.Routine;
            //}
            ////增加收益快照GetRoyaltyByOrderMapping
            //ProductOrder order = GetOrderById(ds);
            //DataJoin<ProductOrder, ProductOrderMapping> s = new DataJoin<ProductOrder, ProductOrderMapping>(order, this);

            return(base.OnInsertBefor(ds, mode, ref columns));
        }
Пример #10
0
        public DataStatus Insert(DataSource ds, ColumnMode mode, params DataColumn[] columns)
        {
            DataStatus status = OnInsertBefor(ds, mode, ref columns);

            if (status == DataStatus.Success)
            {
                try
                {
                    if (InsertImpl(ds, mode, columns))
                    {
                        status = OnInsertAfter(ds);
                    }
                    else
                    {
                        OnInsertFailed(ds);
                        status = DataStatus.Failed;
                    }
                }
#if (DEBUG)
                catch (Exception ex)
#else
                catch (Exception)
#endif
                {
                    OnInsertFailed(ds);
                    status = DataStatus.Failed;
                    //throw;
                }
            }
            return(status);
        }
Пример #11
0
        public DataStatus InsertOrReplace(DataSource ds, ColumnMode mode, params DataColumn[] columns)
        {
            DataStatus status = OnInsertBefor(ds, mode, ref columns);

            if (status == DataStatus.Success)
            {
                try
                {
                    if (InsertOrReplaceImpl(ds, mode, columns))
                    {
                        OnInsertAfter(ds);
                        status = DataStatus.Success;
                    }
                    else
                    {
                        OnInsertFailed(ds);
                        status = DataStatus.Failed;
                    }
                }
                catch (Exception)
                {
                    OnInsertFailed(ds);
                    status = DataStatus.Failed;
                }
            }
            return(status);
        }
Пример #12
0
        public DataStatus Update(DataSource ds, ColumnMode mode, DataColumn[] columns, DataWhereQueue ps)
        {
            DataStatus status = OnUpdateBefor(ds, mode, ref columns);

            if (status == DataStatus.Success)
            {
                try
                {
                    if (UpdateImpl(ds, mode, columns, ps) > 0)
                    {
                        status = OnUpdateAfter(ds);
                    }
                    else
                    {
                        OnUpdateFailed(ds);
                        status = DataStatus.Failed;
                    }
                }
                catch (Exception)
                {
                    OnUpdateFailed(ds);
                    status = DataStatus.Failed;
                    //throw;
                }
            }
            return(status);
        }
Пример #13
0
        protected bool InsertOrReplaceImpl(DataSource ds, ColumnMode mode, params DataColumn[] columns)
        {
            if (ds.Provider.SupperReplace)
            {
                InsertBucket bucket = GetInsertSql(ds, mode, columns);
                string       sql    = ds.Provider.BuildInsertOrReplaceSql(GetTableName(), bucket.Names, bucket.Values, bucket.Id);
                return(ds.ExecuteNonQuery(sql, bucket.Parameters) > 0);
            }

            DataWhereQueue ps = null;

            KeyValuePair <string, FieldInfo>[] pks = GetPrimaryKeys();
            foreach (KeyValuePair <string, FieldInfo> pair in pks)
            {
                if (ps == null)
                {
                    ps = new DataParameter(pair.Key, pair.Value.GetValue(this));
                }
                else
                {
                    ps &= new DataParameter(pair.Key, pair.Value.GetValue(this));
                }
            }
            if (ExecuteCount(ds, ps) > 0)
            {
                return(UpdateImpl(ds, mode, columns, ps) > 0);
            }

            return(InsertImpl(ds, mode, columns));
        }
Пример #14
0
        protected bool InsertImpl(DataSource ds, ColumnMode mode, params DataColumn[] columns)
        {
            InsertBucket bucket = GetInsertSql(ds, mode, columns);
            string       sql    = ds.Provider.BuildInsertSql(GetTableName(), bucket.Names, bucket.Values, bucket.Id);

            return(InsertImpl(ds, sql, this, bucket.Parameters));
        }
Пример #15
0
 protected override DataStatus OnUpdateBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (!Utility.EmailRegularExpression.IsMatch(Email))
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #16
0
 protected override DataStatus OnUpdateBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (!Mobile.IsMobile())
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #17
0
 public FileListPaneSettings(string directory, string sortByField, ListSortDirection sortDirection, ColumnMode columnMode, FileListPaneViewMode viewMode)
 {
     Directory         = directory;
     SortByField       = sortByField;
     SortDirection     = sortDirection;
     DisplayColumnMode = columnMode;
     ViewMode          = viewMode;
 }
Пример #18
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (string.IsNullOrEmpty(AccountName) || string.IsNullOrEmpty(BankCard))
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #19
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (ProductId <= 0)
     {
         return(DataStatus.Failed);
     }
     return(base.OnInsertBefor(ds, mode, ref columns));
 }
Пример #20
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (string.IsNullOrEmpty(Name))
     {
         return(DataStatus.ExistOther);
     }
     return(DataStatus.Success);
 }
Пример #21
0
        protected static bool InsertImpl <T>(T instance, DataSource ds, ColumnMode mode, params DataColumn[] columns) where T : DbTable
        {
            InsertBucket bucket = TDbTable <T> .GetInsertSql(ds, instance, mode, columns);

            string sql = ds.Provider.BuildInsertSql(GetTableName <T>(), bucket.Names, bucket.Values, bucket.Id);

            return(InsertImpl(ds, sql, instance, bucket.Parameters));
        }
Пример #22
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (TemplateId <= 0)
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #23
0
 protected override DataStatus OnUpdateBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (string.IsNullOrEmpty(BankName))
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #24
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (DrawMoney <= 0 || UserId <= 0 || string.IsNullOrEmpty(OrderId))
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #25
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (string.IsNullOrEmpty(Type) || string.IsNullOrEmpty(UserId))
     {
         return(DataStatus.Failed);
     }
     Type = Type.ToLower();
     return(DataStatus.Success);
 }
Пример #26
0
        protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
        {
            bool emptyName   = string.IsNullOrEmpty(Name);
            bool emptyEmail  = string.IsNullOrEmpty(Email);
            bool emptyMobile = !Mobile.IsMobile();

            if (emptyName && emptyEmail && emptyMobile)
            {
                return(DataStatus.Failed);
            }
            if (emptyMobile)
            {
                Mobile = 0L;
            }
            if (!emptyName)
            {
                if (!Web.Utility.PassportNameRegularExpression.IsMatch(ref Name))
                {
                    return(DataStatus.Failed);
                }
                if (!CheckName(ds, Name))
                {
                    return(DataStatus.Exist);
                }
            }
            if (!emptyEmail)
            {
                if (!Web.Utility.EmailRegularExpression.IsMatch(ref Email))
                {
                    return(DataStatus.Failed);
                }
                if (!CheckEmail(ds, Email))
                {
                    return(DataStatus.Exist);
                }
            }
            if (!emptyMobile)
            {
                if (!CheckMobile(ds, Mobile))
                {
                    return(DataStatus.Exist);
                }
            }
            if (!emptyEmail || !emptyMobile)
            {
                if (emptyName)
                {
                    Name = Guid.NewGuid().ToString("N");
                }
            }
            if (!Web.Utility.PassportPasswordRegularExpression.IsMatch(Password))
            {
                return(DataStatus.ExistOther);
            }
            Password = Password.MD5();
            return(DataStatus.Success);
        }
Пример #27
0
 protected override DataStatus OnUpdateBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     columns = Exclude(columns, mode, "UserId", "ParentId", "TargetType", "TargetId", "CreationDate");
     if (string.IsNullOrEmpty(Content))
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #28
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (string.IsNullOrEmpty(Provider))
     {
         return(DataStatus.Failed);
     }
     Provider = Provider.ToLower();
     return(DataStatus.Success);
 }
Пример #29
0
 protected override DataStatus OnUpdateBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     columns = Exclude(columns, mode, "SellerId");
     if (string.IsNullOrEmpty(Name))
     {
         return(DataStatus.Failed);
     }
     return(DataStatus.Success);
 }
Пример #30
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (string.IsNullOrEmpty(Name))
     {
         return(DataStatus.Failed);
     }
     Length = Name.Length;
     return(DataStatus.Success);
 }
Пример #31
0
 protected override DataStatus OnInsertBefor(DataSource ds, ColumnMode mode, ref DataColumn[] columns)
 {
     if (string.IsNullOrEmpty(Id) || string.IsNullOrEmpty(Name) || string.IsNullOrEmpty(Version))
     {
         return(DataStatus.Failed);
     }
     Id = Id.ToLower();
     return(DataStatus.Success);
 }