Пример #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));
            }
        }
Пример #2
0
        /// <summary>
        ///     添加参与抽奖的人员
        /// </summary>
        /// <param name="staffs">抽奖人员集合信息</param>
        /// <returns>业务操作结果</returns>
        public OperationResult Add(IEnumerable <SceneStaff> staffs)
        {
            int rcount = SceneStaffRepository.Insert(staffs);

            if (rcount > 0)
            {
                return(new OperationResult(OperationResultType.Success, "批量添加现场抽奖人员成功。"));
            }
            else
            {
                return(new OperationResult(OperationResultType.Warning, "批量添加添加现场抽奖人员失败。"));
            }
        }
Пример #3
0
        /// <summary>
        ///     添加参与抽奖的人员
        /// </summary>
        /// <param name="staffs">抽奖人员信息</param>
        /// <returns>业务操作结果</returns>
        public OperationResult Add(SceneStaff staff)
        {
            int rcount = SceneStaffRepository.Insert(staff);

            if (rcount > 0)
            {
                return(new OperationResult(OperationResultType.Success, "现场抽奖人员添加成功。", staff));
            }
            else
            {
                return(new OperationResult(OperationResultType.Warning, "现场抽奖人员添加失败。"));
            }
        }