Пример #1
0
        public bool CreateSendRedpackRecord(int serialid, int userid, string openid, int amount, string act_name, string wishing)
        {
            bool flag = true;
            int  num  = 0x4e20;
            int  num2 = amount;
            SendRedpackRecordInfo sendredpackinfo = new SendRedpackRecordInfo {
                BalanceDrawRequestID = serialid,
                UserID   = userid,
                OpenID   = openid,
                ActName  = act_name,
                Wishing  = wishing,
                ClientIP = Globals.IPAddress
            };

            using (DbConnection connection = this.database.CreateConnection())
            {
                connection.Open();
                DbTransaction        dbTran = connection.BeginTransaction();
                SendRedpackRecordDao dao    = new SendRedpackRecordDao();

                try
                {
                    if (num2 <= num)
                    {
                        sendredpackinfo.Amount = amount;
                        flag = dao.AddSendRedpackRecord(sendredpackinfo, dbTran);
                        return(this.UpdateSendRedpackRecord(serialid, 1, dbTran));
                    }
                    int num3 = amount % num;
                    int num4 = amount / num;
                    if (num3 > 0)
                    {
                        sendredpackinfo.Amount = num3;
                        flag = dao.AddSendRedpackRecord(sendredpackinfo, dbTran);
                    }
                    if (flag)
                    {
                        for (int i = 0; i < num4; i++)
                        {
                            sendredpackinfo.Amount = num;
                            flag = dao.AddSendRedpackRecord(sendredpackinfo, dbTran);
                            if (!flag)
                            {
                                dbTran.Rollback();
                            }
                        }
                        int num6 = num4 + ((num3 > 0) ? 1 : 0);
                        flag = this.UpdateSendRedpackRecord(serialid, num6, dbTran);
                        if (!flag)
                        {
                            dbTran.Rollback();
                        }
                        return(flag);
                    }
                    dbTran.Rollback();
                    return(flag);
                }
                catch
                {
                    if (dbTran.Connection != null)
                    {
                        dbTran.Rollback();
                    }
                    flag = false;
                }
                finally
                {
                    if (flag)
                    {
                        dbTran.Commit();
                    }
                    connection.Close();
                }
            }

            return(flag);
        }
Пример #2
0
        public bool CreateSendRedpackRecord(int serialid, int userid, string openid, int amount, string act_name, string wishing)
        {
            bool flag = true;
            int  num  = 20000;
            SendRedpackRecordInfo sendRedpackRecordInfo = new SendRedpackRecordInfo();

            sendRedpackRecordInfo.BalanceDrawRequestID = serialid;
            sendRedpackRecordInfo.UserID   = userid;
            sendRedpackRecordInfo.OpenID   = openid;
            sendRedpackRecordInfo.ActName  = act_name;
            sendRedpackRecordInfo.Wishing  = wishing;
            sendRedpackRecordInfo.ClientIP = Globals.IPAddress;
            using (System.Data.Common.DbConnection dbConnection = this.database.CreateConnection())
            {
                dbConnection.Open();
                System.Data.Common.DbTransaction dbTransaction        = dbConnection.BeginTransaction();
                SendRedpackRecordDao             sendRedpackRecordDao = new SendRedpackRecordDao();
                try
                {
                    if (amount <= num)
                    {
                        sendRedpackRecordInfo.Amount = amount;
                        flag = sendRedpackRecordDao.AddSendRedpackRecord(sendRedpackRecordInfo, dbTransaction);
                    }
                    else
                    {
                        int num2 = amount % num;
                        int num3 = amount / num;
                        if (num2 > 0)
                        {
                            sendRedpackRecordInfo.Amount = num2;
                            flag = sendRedpackRecordDao.AddSendRedpackRecord(sendRedpackRecordInfo, dbTransaction);
                        }
                        if (flag)
                        {
                            for (int i = 0; i < num3; i++)
                            {
                                sendRedpackRecordInfo.Amount = num;
                                flag = sendRedpackRecordDao.AddSendRedpackRecord(sendRedpackRecordInfo, dbTransaction);
                                if (!flag)
                                {
                                    dbTransaction.Rollback();
                                }
                            }
                            int num4 = num3 + ((num2 > 0) ? 1 : 0);
                            if (!flag)
                            {
                                dbTransaction.Rollback();
                            }
                        }
                        else
                        {
                            dbTransaction.Rollback();
                        }
                    }
                }
                catch
                {
                    if (dbTransaction.Connection != null)
                    {
                        dbTransaction.Rollback();
                    }
                    flag = false;
                }
                finally
                {
                    if (flag)
                    {
                        dbTransaction.Commit();
                    }
                    dbConnection.Close();
                }
            }
            return(flag);
        }