Exemple #1
0
        /// <summary>
        ///  同时发布奖品、发起抽奖
        /// </summary>
        /// <param name="shouldMinus">是否该对用户的可发起抽奖次数减</param>
        public OperationResult BatchAdd(PrizeOrder porder, bool shouldMinus = false)
        {
            SqlTransaction tran = null;

            try
            {
                Database db = EFContext.DbContext.Database;
                using (SqlConnection conn = new SqlConnection(db.Connection.ConnectionString))
                {
                    conn.Open();
                    using (tran = conn.BeginTransaction())
                    {
                        var member = MemberRepository.Entities.Where(m => m.Id == porder.Prize.Member.Id).FirstOrDefault();
                        porder.Prize.Member = member;
                        if (shouldMinus)
                        {
                            if (member != null)
                            {
                                member.PubishingEnableTimes--;
                                MemberRepository.Update(member);
                            }
                        }
                        PrizeRepository.Insert(porder.Prize);
                        PrizeOrderRepository.Insert(porder);

                        // 现场抽奖
                        if (porder.RevealType == RevealType.Scene)
                        {
                            if (porder.SceneStaffs != null && porder.SceneStaffs.Count() > 0)
                            {
                                SceneStaffRepository.Insert(porder.SceneStaffs);
                            }
                        }
                        tran.Commit();
                    }
                }
                return(new OperationResult(OperationResultType.Success, "发布奖品、发起抽奖一次性操作成功。", porder));
            }
            catch (DataAccessException ex)
            {
                if (tran != null)
                {
                    tran.Rollback();
                }
                return(new OperationResult(OperationResultType.Error, ex.Message));
            }
            catch (Exception ex)
            {
                if (tran != null)
                {
                    tran.Rollback();
                }
                return(new OperationResult(OperationResultType.Error, ex.Message));
            }
        }
Exemple #2
0
        /// <summary>
        ///  批量添加奖单
        /// </summary>
        /// <param name="prizeorders">奖单集合</param>
        /// <returns></returns>
        public OperationResult Add(IEnumerable <PrizeOrder> prizeorders)
        {
            int rcount = PrizeOrderRepository.Insert(prizeorders);

            if (rcount > 0)
            {
                return(new OperationResult(OperationResultType.Success, "批量添加奖单成功。"));
            }
            else
            {
                return(new OperationResult(OperationResultType.Warning, "批量添加奖单成功。"));
            }
        }
Exemple #3
0
        /// <summary>
        ///     添加奖品
        /// </summary>
        /// <param name="prizebetting">奖品信息</param>
        /// <param name="shouldMinus">是否该对用户的可发起抽奖次数减</param>
        /// <returns>业务操作结果</returns>
        public OperationResult Add(PrizeOrder prizeorder, bool shouldMinus = false)
        {
            int rcount = PrizeOrderRepository.Insert(prizeorder);

            if (rcount > 0)
            {
                if (shouldMinus)
                {
                    var member = MemberRepository.Entities.Where(m => m.Id == prizeorder.Prize.Member.Id).FirstOrDefault();
                    if (member != null)
                    {
                        member.PubishingEnableTimes--;
                        MemberRepository.Update(member);
                    }
                }
                return(new OperationResult(OperationResultType.Success, "发布奖单成功。", prizeorder));
            }
            else
            {
                return(new OperationResult(OperationResultType.Warning, "发布奖单失败。"));
            }
        }