Пример #1
0
        public static IList <DataJoin <T, StatisticData> > GetPage <T>(DataSource ds, int type, DataSortType sort, DataColumn[] columns, DataOrder[] order, long index, int size, out long count, string idName, DataWhereQueue where) where T : DbTable, new()
        {
            List <DataColumn> list = new List <DataColumn>();

            if (columns == null)
            {
                list.Add(C <T>("*"));
            }
            else
            {
                list.AddRange(columns);
            }
            List <DataOrder> olist = new List <DataOrder>();

            if (type > 0)
            {
                olist.Add(new DataOrder <StatisticData>("Count", sort));
            }
            if (order != null)
            {
                olist.AddRange(order);
            }
            DataWhereQueue queue = WD;

            if (type > 0)
            {
                queue &= P <StatisticData>("Type", type);
            }
            if (queue != null)
            {
                queue &= where;
            }
            return(ExecuteReader <T, StatisticData>(ds, list.ToArray(), olist.ToArray(), index, size, out count, idName, "TargetId", DataJoinType.Inner, queue));
        }
Пример #2
0
 public static DataStatus ModifyMoney(DataSource ds, long id, Money value)
 {
     if (value == 0)
     {
         return(DataStatus.Success);
     }
     DataWhereQueue where = P("UserId", id);
     if (value < 0)
     {
         where = WN("Money", -value, "OldMoney", ">=") & where;
     }
     return((new Distributor()
     {
         UserId = id
     }).Update(ds, ColumnMode.Include, Cs(MODC("Money", value)), where));
 }
Пример #3
0
 /// <summary>
 /// 修改可用预存款
 /// </summary>
 /// <param name="ds"></param>
 /// <param name="id"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 public static DataStatus ModifyMoney(DataSource ds, long id, Money value, string title, int type = 0, string targetId = null)
 {
     if (value == 0)
     {
         return(DataStatus.Success);
     }
     ds.Begin();
     try
     {
         DataStatus status = (new MoneyRecord()
         {
             MemberId = id,
             Title = title,
             Type = type,
             TargetId = targetId,
             Value = value,
             CreationDate = DateTime.Now
         }).Insert(ds);
         if (status != DataStatus.Success)
         {
             throw new Exception();
         }
         DataWhereQueue where = P("Id", id);
         if (value < 0)
         {
             where = WN("Money", -value, "OldMoney", ">=") & where;
         }
         status = (new MemberInfo()
         {
             Id = id
         }).Update(ds, ColumnMode.Include, Cs(MODC("Money", value)), where);
         if (status != DataStatus.Success)
         {
             throw new Exception();
         }
         ds.Commit();
         return(DataStatus.Success);
     }
     catch (Exception)
     {
         ds.Rollback();
         return(DataStatus.Rollback);
     }
 }
Пример #4
0
        public static IList <DataJoin <T, StatisticData> > GetTopByDay <T>(DataSource ds, int type, int count, DataColumn[] columns, string idName, DataWhereQueue where) where T : DbTable, new()
        {
            List <DataColumn> list = new List <DataColumn>();

            if (columns == null)
            {
                list.Add(C <T>("*"));
            }
            else
            {
                list.AddRange(columns);
            }
            list.Add(C <StatisticData>("Day"));
            DataWhereQueue queue = P <StatisticData>("Type", type);

            if (queue != null)
            {
                queue &= where;
            }
            return(ExecuteReader <T, StatisticData>(ds, count, list.ToArray(), Os(Od <StatisticData>("Day"), Od <StatisticData>("Count"), Od <StatisticData>("Year"), Od <StatisticData>("Month"), Od <StatisticData>("Week")), idName, "TargetId", DataJoinType.Inner, queue));
        }
Пример #5
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);
        }
Пример #6
0
 public static bool ExecuteSingleRow <T>(T instance, DataSource ds, DataColumn[] columns, DataColumn[] group, DataOrder[] order, DataWhereQueue ps = null) where T : DbTable, new()
 {
     return(ds.ExecuteSingleRow <T>(instance, ds.Provider.BuildSelectSql(GetTableName <T>(), DataProvider.GetSqlString(columns, ds, false, true), DataProvider.GetSqlString(ps, ds, false, false), DataProvider.GetSqlString(order, ds, false, false), DataProvider.GetSqlString(group, ds, false, false)), DataWhereQueue.GetParameters(ps)));
 }
Пример #7
0
 public static T ExecuteSingleRow <T>(DataSource ds, DataOrder[] order, DataWhereQueue ps = null) where T : DbTable, new()
 {
     return(ds.ExecuteSingleRow <T>(ds.Provider.BuildSelectSql(GetTableName <T>(), null, DataProvider.GetSqlString(ps, ds, false, false), DataProvider.GetSqlString(order, ds, false, false)), DataWhereQueue.GetParameters(ps)));
 }
Пример #8
0
 public static DataJoin <A, B> ExecuteSingleRow <A, B>(DataSource ds, DataColumn[] columns, DataColumn[] group, DataOrder[] order, string aId, string bId, DataJoinType type = DataJoinType.Inner, DataWhereQueue ps = null) where A : DbTable, new() where B : DbTable, new()
 {
     return(ds.ExecuteSingleRow <DataJoin <A, B> >(ds.Provider.BuildSelectJoinSql(GetTableName <A>(), GetTableName <B>(), type, aId, bId, DataProvider.GetSqlString(columns, ds, true, true), DataProvider.GetSqlString(ps, ds, true, false), DataProvider.GetSqlString(order, ds, true, false), DataProvider.GetSqlString(group, ds, true, false)), DataWhereQueue.GetParameters(ps)));
 }