Exemplo n.º 1
0
        public IActionResult newActivity(_Activity newact)
        {
            if (HttpContext.Session.GetInt32("user_id") == null)
            {
                return(RedirectToAction("Login"));
            }
            if (newact.Date < DateTime.Now)
            {
                ModelState.AddModelError("Date", "Activity must be in the future");

                //*** i need to assign this session again because i need it when i View it back
                @ViewBag.user_id = (int)HttpContext.Session.GetInt32("user_id");
                return(View("createActivity"));
            }
            if (ModelState.IsValid)
            {
                @ViewBag.user_id = (int)HttpContext.Session.GetInt32("user_id");
                dbContext.Add(newact);
                dbContext.SaveChanges();
                int num = newact._ActivityId;
                return(Redirect($"INFOActivity/{num}"));
            }
            else
            {
                @ViewBag.user_id = (int)HttpContext.Session.GetInt32("user_id");
                ViewBag.errors   = ModelState.Values;
                return(View("createActivity"));
            }
        }
Exemplo n.º 2
0
        public IActionResult Join(int _ActivityId)
        {
            if (HttpContext.Session.GetInt32("user_id") == null)
            {
                return(RedirectToAction("Login"));
            }
            User user = dbContext.Users.Include(q => q.Associations)
                        .ThenInclude(w => w._Activity)
                        .FirstOrDefault(u => u.UserId == HttpContext.Session.GetInt32("user_id"));


            _Activity _Activity = dbContext.Activities.Include(q => q.Associations).ThenInclude(u => u.User).FirstOrDefault(w => w._ActivityId == _ActivityId);

            Association ass = new Association()
            {
                UserId      = user.UserId,
                User        = user,
                _ActivityId = _ActivityId,
                _Activity   = _Activity,
                CreatedAt   = DateTime.Now,
                UpdatedAt   = DateTime.Now
            };

            dbContext.Add(ass);
            dbContext.SaveChanges();
            return(RedirectToAction("Dashbord"));
        }
Exemplo n.º 3
0
        public IActionResult Delete(int ActivityId)
        {
            _Activity activityToDelete = dbContext.Activities.FirstOrDefault(a => a.ActivityId == ActivityId);

            dbContext.Activities.Remove(activityToDelete);
            dbContext.SaveChanges();
            return(RedirectToAction("Main"));
        }
Exemplo n.º 4
0
        public _Activity GetPartyDetail(long id, long userid, Paging page)
        {
            //获取活动 基本信息
            _Activity amodel = GetDetail(id, userid, true);

            if (amodel != null)
            {
                amodel.Comments = CommentBLL.Instance.GetCommentCallBack(id, CommentEnumType.Party.GetHashCode(), PriseEnumType.PartyComment.GetHashCode(), userid, page);
                return(amodel);
            }
            return(null);
        }
Exemplo n.º 5
0
        public IActionResult deleteActivity(int _ActivityId)
        {
            if (HttpContext.Session.GetInt32("user_id") == null)
            {
                return(RedirectToAction("Login"));
            }
            _Activity one = dbContext.Activities.FirstOrDefault(a => a._ActivityId == _ActivityId);

            dbContext.Remove(one);
            dbContext.SaveChanges();
            return(RedirectToAction("Dashbord"));
        }
Exemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="searchMyJoinItem">是否搜索我购买的活动</param>
        /// <returns></returns>
        public _Activity GetDetail(long id, long userid, bool searchMyJoinItem)
        {
            DataSet   ds    = dal.GetDetail(id, userid, searchMyJoinItem);
            _Activity model = new _Activity();

            model = ModelConvertHelper <_Activity> .ConverToModel(ds.Tables[0]);

            model.FeeList = ModelConvertHelper <ActivityFee> .ConvertToList(ds.Tables[1]);

            model.JoinQuestions = ModelConvertHelper <JoinItemQuestionExt> .ConvertToList(ds.Tables[2]);

            if (searchMyJoinItem)
            {
                model.JoinFeeList = ModelConvertHelper <UserBuyPartyListInfo> .ConvertToList(ds.Tables[3]);
            }
            return(model);
        }
Exemplo n.º 7
0
 public ActionResult Detail(int id = 0)
 {
     if (id > 0)
     {
         //获取活动信息
         Paging    page     = InitPage();
         _Activity activity = ActivityBLL.Instance.GetPartyDetail(id, UserID, page);
         if (activity == null)
         {
             return(RedirectToAction("Index"));
         }
         return(View(activity));
     }
     else
     {
         return(RedirectToAction("Index"));
     }
 }
Exemplo n.º 8
0
        public IActionResult INFOActivity(int _ActivityId)
        {
            if (HttpContext.Session.GetInt32("user_id") == null)
            {
                return(RedirectToAction("Login"));
            }
            _Activity activity = dbContext.Activities.Include(a => a.User).Include(a => a.Associations)
                                 .ThenInclude(a => a.User)
                                 .FirstOrDefault(i => i._ActivityId == _ActivityId);


            List <_Activity> all_activity = dbContext.Activities.Include(w => w.User).Include(q => q.Associations).ThenInclude(w => w.User).ToList();

            ViewBag.all_activities = all_activity;
            ViewBag.activity       = activity;
            ViewBag.user_id        = (int)HttpContext.Session.GetInt32("user_id");

            return(View("INFOActivity"));
        }
Exemplo n.º 9
0
        public IActionResult ActivityInfo(int ActivityId)
        {
            _Activity retrievedActivity = dbContext.Activities
                                          .Include(a => a.Creator)
                                          .Include(a => a.Participants)
                                          .ThenInclude(sub => sub.User)
                                          .FirstOrDefault(a => a.ActivityId == ActivityId);

            int? CurrentUserId = HttpContext.Session.GetInt32("UserId");
            User retrievedUser = dbContext.Users
                                 .Include(u => u.ActivitiesJoined)
                                 .FirstOrDefault(u => u.UserId == (int)CurrentUserId);

            Wrapper modelData = new Wrapper()
            {
                Activity = retrievedActivity,
                User     = retrievedUser,
            };

            return(View(modelData));
        }
Exemplo n.º 10
0
        public ActionResult Submit(long id, int fee, long feeid, int count, string LinkMan, string LinkTel, List <UserJoinItemViewModel> JoinItems)
        {
            ResultInfo ri = new ResultInfo();

            if (id > 0)
            {
                //根据ID查找详情
                _Activity activity = ActivityBLL.Instance.GetDetail(id, 0, false);
                if (activity != null)
                {
                    ri = ActivityBLL.Instance.CanJoinParty(activity);
                    if (ri.Ok)
                    {
                        ri = new ResultInfo();
                        BeginTran();

                        #region 报名
                        #region 获取报名费用

                        List <ActivityFee> feelist = activity.FeeList;
                        var feeInfo = feelist.FirstOrDefault(a => { return(a.ActivityFeeId == feeid && a.Fee == fee); });
                        if (feeInfo != null)
                        {
                            if (feeInfo.FeeCount > 0)
                            {
                                if (feeInfo.FeeCount >= count)
                                {
                                    //判断是否需要扣费
                                    //TODO

                                    int coinType = feeInfo.FeeType == 10 ? 1 : feeInfo.FeeType == 20 ? 2 : 0;
                                    int coin     = Convert.ToInt32(feeInfo.Fee.Value) * count;//计算总费用

                                    bool canJoin = true;
                                    if (fee != 0)
                                    {
                                        canJoin = UserExtBLL.Instance.HasEnoughCoin(coinType, coin, UserID);
                                    }
                                    //记录参加活动
                                    if (canJoin)
                                    {
                                        ActivityJoin ajoin = new ActivityJoin();
                                        ajoin.ActivityId    = activity.ActivityId;
                                        ajoin.FeeType       = feeInfo.FeeType;
                                        ajoin.IsFeed        = 1;
                                        ajoin.RealPayFee    = coin;
                                        ajoin.JoinCount     = count;
                                        ajoin.JoinTime      = DateTime.Now;
                                        ajoin.JoinUserID    = UserID;
                                        ajoin.JoinUserName  = UserInfo.UserName;
                                        ajoin.ActivityFeeId = feeInfo.ActivityFeeId;
                                        ajoin.LinkMan       = LinkMan;
                                        ajoin.LinkTel       = LinkTel;
                                        if (ActivityJoinBLL.Instance.Add(ajoin, Tran) > 0)
                                        {
                                            bool insertOk = true;
                                            //记录报名填写项
                                            if (JoinItems != null && JoinItems.Count > 0)
                                            {
                                                foreach (var join in JoinItems)
                                                {
                                                    JoinItemAnswerExt model = new JoinItemAnswerExt()
                                                    {
                                                        BuyerID               = UserID,
                                                        CreateTime            = DateTime.Now,
                                                        ItemAnswer            = join.Value,
                                                        JoinItemQuestionExtId = join.Id,
                                                        JoinMainID            = activity.ActivityId,
                                                        JoinType              = 1
                                                    };
                                                    if (JoinItemAnswerExtBLL.Instance.Add(model, Tran) <= 0)
                                                    {
                                                        insertOk = false;
                                                        break;
                                                    }
                                                }
                                            }

                                            if (insertOk)
                                            {
                                                //更新剩余名额
                                                if (ActivityFeeBLL.Instance.UpdateCount(count, feeInfo.ActivityFeeId, Tran))
                                                {
                                                    ////生成订单
                                                    //string orderDesc = GetRequest("desc", "参加" + activity.Title);
                                                    ////添加订单
                                                    //int _orderResult = 0;
                                                    //string _orderNo = string.Empty;
                                                    //var addOrder = _orderService.CreateOrder(UserID, fee, id, OrderEnumType.Party.GetHashCode(), orderDesc, "HD", count, Tran, out _orderResult, out _orderNo);
                                                    //if (_orderResult > 0)
                                                    //{
                                                    if (fee == 0)
                                                    {
                                                        ri.Ok  = true;
                                                        ri.Msg = "报名成功";
                                                        Commit();
                                                    }
                                                    else
                                                    {
                                                        //报名成功
                                                        //扣除相应数据
                                                        //用户帐户减去相应的积分或金钱
                                                        if (UserExtBLL.Instance.SubScore(UserID, coin, coinType, Tran))
                                                        {
                                                            if (ScoreCoinLogBLL.Instance.Log(-coin, coinType, CoinSourceEnum.JoinActivity, UserID, UserInfo.UserName, Tran))
                                                            {
                                                                Commit();
                                                                ri.Ok  = true;
                                                                ri.Msg = "报名成功";
                                                            }
                                                            else
                                                            {
                                                                ri.Msg = "报名失败";
                                                                RollBack();
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ri.Msg = "报名失败";
                                                            RollBack();
                                                        }
                                                    }
                                                    if (ri.Ok)
                                                    {
                                                        //通知
                                                        NoticeBLL.Instance.OnBuySuccess_Notice_Buyer(UserID, DateTime.Now, fee == 0 ? true : false, "{0}{1}".FormatWith(coin, feeInfo.FeeType == 10 ? "积分" : feeInfo.FeeType == 20 ? "VIP分" : string.Empty), count, ConfigHelper.AppSettings("PartyDetail").FormatWith(id), activity.Title, false, NoticeTypeEnum.Party_Join);
                                                    }
                                                    //}
                                                    //else
                                                    //{
                                                    //    RollBack();
                                                    //    ri.Msg = addOrder;
                                                    //}
                                                }
                                                else
                                                {
                                                    RollBack();
                                                }
                                            }
                                            else
                                            {
                                                RollBack();
                                            }
                                        }
                                        else
                                        {
                                            RollBack();
                                        }
                                    }
                                    else
                                    {
                                        ri.Msg = $"对不起,您没有足够的{(coinType == 1 ? "积分" : "金钱")}";
                                    }
                                }
                                else
                                {
                                    ri.Type = 1;
                                    ri.Msg  = "当前余票不足{0}份,请重新选择数量!".FormatWith(count);
                                }
                            }
                            else
                            {
                                ri.Msg = "该票种已无余票!请购买其它票种或联系主办方!";
                            }
                        }
                        else
                        {
                            ri.Msg = "费用异常!";
                        }
                        #endregion
                    }
                    #endregion
                }
                else
                {
                    ri.Msg = "活动不存在";
                }
            }
            else
            {
                ri.Msg = "活动详情错误";
            }
            return(Result(ri));
        }
Exemplo n.º 11
0
        public IActionResult AddNewActivityProcess(Wrapper modelData)
        {
            _Activity newActivity = modelData.Activity;

            if (ModelState.IsValid)
            {
                var DateCheck = new Regex(@"^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$");
                if (!DateCheck.IsMatch(newActivity.Date))
                {
                    ModelState.AddModelError("Activity.Date", "Date should be in format 'mm/dd/yyyy'");
                    int? CurrentUserId = HttpContext.Session.GetInt32("UserId");
                    User retrievedUser = dbContext.Users.FirstOrDefault(u => u.UserId == (int)CurrentUserId);

                    Wrapper NewmodelData = new Wrapper()
                    {
                        User = retrievedUser,
                    };
                    return(View("AddNewActivity", NewmodelData));
                }
                var MilitaryTime = new Regex(@"^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$");
                if (!MilitaryTime.IsMatch(newActivity.Time))
                {
                    ModelState.AddModelError("Activity.Time", "Time should be in format 'hh:mm'");
                    int? CurrentUserId = HttpContext.Session.GetInt32("UserId");
                    User retrievedUser = dbContext.Users.FirstOrDefault(u => u.UserId == (int)CurrentUserId);

                    Wrapper NewmodelData = new Wrapper()
                    {
                        User = retrievedUser,
                    };
                    return(View("AddNewActivity", NewmodelData));
                }


                DateTime Now      = DateTime.Now;
                DateTime thisDate = DateTime.Parse(newActivity.Date);

                TimeSpan Time = TimeSpan.Parse(newActivity.Time);

                thisDate = thisDate.Date + Time;


                if (Now >= thisDate)
                {
                    ModelState.AddModelError("Activity.Date", "Date must be in future");
                    int? CurrentUserId = HttpContext.Session.GetInt32("UserId");
                    User retrievedUser = dbContext.Users.FirstOrDefault(u => u.UserId == (int)CurrentUserId);

                    Wrapper NewmodelData = new Wrapper()
                    {
                        User = retrievedUser,
                    };
                    return(View("AddNewActivity", NewmodelData));
                }

                newActivity.DateConverted = thisDate;
                dbContext.Activities.Add(newActivity);
                dbContext.SaveChanges();
                _Activity retrievedActivity = dbContext.Activities.FirstOrDefault(u => u.Title == newActivity.Title);
                return(Redirect("ActivityInfo/" + retrievedActivity.ActivityId));
            }
            else
            {
                int? CurrentUserId = HttpContext.Session.GetInt32("UserId");
                User retrievedUser = dbContext.Users.FirstOrDefault(u => u.UserId == (int)CurrentUserId);



                Wrapper NewmodelData = new Wrapper()
                {
                    User = retrievedUser,
                };
                return(View("AddNewActivity", NewmodelData));
            }
        }