Example #1
0
        public ActionResult Details(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var planService = new StripePlanService();
            var p           = planService.Get(id);
            var plan        = new PlanDetailViewModel
            {
                Id                  = p.Id,
                Name                = p.Name,
                Amount              = p.Amount,
                Currency            = p.Currency,
                Interval            = p.Interval,
                IntervalCount       = p.IntervalCount,
                LiveMode            = p.LiveMode,
                TrialPeriodDays     = p.TrialPeriodDays,
                StatementDescriptor = p.StatementDescriptor,
                Created             = p.Created,
                Metadata            = p.Metadata
            };

            return(View(plan));
        }
        public ActionResult Save(PlanViewModel plan, int PlanMasterId, List <PlanDetailViewModel> planDetailList)
        {
            if (ModelState.IsValid)
            {
                #region //B1: Cập nhật Master
                PlanModel planModel = _context.PlanModel.Where(p => p.PlanMasterId == PlanMasterId).FirstOrDefault();
                planModel.FromTime = plan.FromTime;
                planModel.ToTime   = plan.ToTime;
                #endregion //B1: Cập nhật Master

                #region    //B2: Cập nhật Detail
                //TH1: Cũ không có trong mới -> Delete
                List <PlanDetailModel> detailList = _context.PlanDetailModel.Where(y => y.PlanMasterId == PlanMasterId).ToList();
                foreach (var item in detailList)
                {
                    PlanDetailViewModel pdVM = planDetailList.Where(z => z.PlanDetailId == item.PlanDetailId).FirstOrDefault();

                    if (pdVM == null)
                    {
                        _context.Entry(item).State = EntityState.Deleted;
                    }
                }
                foreach (var item in planDetailList)
                {
                    //TH2: Mới có trong cũ -> Modify
                    PlanDetailModel planDetail = _context.PlanDetailModel.Where(x => x.PlanDetailId == item.PlanDetailId).FirstOrDefault();
                    if (planDetail != null)
                    {
                        planDetail.TimeFrame             = item.TimeFrame;
                        planDetail.AmountOfCus           = item.AmountOfCus;
                        _context.Entry(planDetail).State = System.Data.Entity.EntityState.Modified;
                    }

                    //TH3: Mới không có trong cũ -> Add
                    else
                    {
                        planDetail = new PlanDetailModel();
                        planDetail.PlanMasterId = PlanMasterId;
                        planDetail.TimeFrame    = item.TimeFrame;
                        planDetail.AmountOfCus  = item.AmountOfCus;

                        _context.Entry(planDetail).State = System.Data.Entity.EntityState.Added;
                    }
                }
                #endregion //B2: Cập nhật Detail

                #region    //B3: Cập nhật Master & Detail
                _context.Entry(planModel).State = EntityState.Modified;
                _context.SaveChanges();
                #endregion //B3: Cập nhật Master & Detail

                return(Json(new { result = true }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { result = false }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult GetWorkingTime(TimeSpan WorkingFromTime, TimeSpan WorkingToTime, int PlanMasterId)
        {
            //Set 2 hours interval
            TimeSpan Interval1 = new TimeSpan(2, 0, 0);
            TimeSpan Interval2 = new TimeSpan(-2, 0, 0);
            //Set 1 hours interval
            TimeSpan Interval3 = new TimeSpan(-1, 0, 0);
            //Hiển thị danh sách khung giờ theo ngày, giờ bắt đầu và giờ kết thúc
            var detailList = _context.PlanDetailModel.Where(p => p.PlanMasterId == PlanMasterId).ToList();
            List <PlanDetailViewModel> planDetailList = new List <PlanDetailViewModel>();

            var plan = _context.PlanModel.Where(p => p.PlanMasterId == PlanMasterId).FirstOrDefault();

            double wfromTime = WorkingFromTime.TotalHours;
            double wtoTime   = WorkingToTime.TotalHours;

            //Có khung giờ trong Db và giờ bắt đầu và giờ kết thúc được chọn giống trong DB
            if (detailList.Count > 0 && WorkingFromTime == plan.FromTime && WorkingToTime == plan.ToTime)
            {
                //Load thông tin khung giờ trong db
                foreach (var item in detailList)
                {
                    PlanDetailViewModel planDetail = new PlanDetailViewModel();
                    planDetail.PlanMasterId    = PlanMasterId;
                    planDetail.PlanDetailId    = item.PlanDetailId;
                    planDetail.TimeFrame       = item.TimeFrame;
                    planDetail.TimeFrameString = string.Format("{0:HH:mm}", DateTime.Parse(item.TimeFrame.ToString()));
                    planDetail.AmountOfCus     = item.AmountOfCus;
                    planDetailList.Add(planDetail);
                }
            }

            //Các trường hợp còn lại => Thêm mới khung giờ làm việc
            else
            {
                //Nếu khung giờ có thể chia thành 2 tiếng => Giữ nguyên WorkingToTime
                //Ngược lại => WorkingToTime trừ đi 2 tiếng
                if ((wtoTime - wfromTime) % 2 != 0)
                {
                    WorkingToTime = WorkingToTime.Add(Interval2);
                }
                WorkingFromTime = WorkingFromTime.Add(Interval2);
                while (WorkingFromTime < WorkingToTime)
                {
                    //Khung giờ
                    WorkingFromTime = WorkingFromTime.Add(Interval1);

                    var modelAdd = new PlanDetailViewModel();
                    //Giờ
                    modelAdd.TimeFrameString = string.Format("{0:HH:mm}", DateTime.Parse(WorkingFromTime.ToString()));
                    modelAdd.TimeFrame       = WorkingFromTime;
                    planDetailList.Add(modelAdd);
                }
            }
            return(PartialView(planDetailList.OrderBy(p => p.TimeFrame)));
        }
Example #4
0
        public IActionResult CreateDetail(PlanDetailViewModel model)
        {
            ViewBag.Plans = _planRepository.GetAllPlans();
            if (ModelState.IsValid)
            {
                var planDetail = _mapper.Map <PlanDetailViewModel, PlanDetail>(model);
                planDetail.AddedBy = _admin.Fullname;

                _planRepository.CreateDetail(planDetail);

                return(RedirectToAction("detailtable"));
            }
            return(View(model));
        }
        public ActionResult GetMealPlan(int planId)
        {
            PlanDetailViewModel planDetail = new PlanDetailViewModel();

            if (IsAuthenticated)
            {
                _nextView       = "MealPlanDetail";
                planDetail.Plan = _dal.GetPlanByPlanId(planId);

                for (int i = 0; i <= 6; i++)
                {
                    planDetail.MealsOnDays.Add(_dal.GetMealsOnDay(planId, i));
                }
            }

            return(GetAuthenticatedView(_nextView, planDetail));
        }
        public ActionResult ModifyPlan(int planId)
        {
            PlanDetailViewModel planDetail = new PlanDetailViewModel();

            if (IsAuthenticated)
            {
                _nextView           = "ModifyMealPlan";
                planDetail.Plan     = _dal.GetPlanByPlanId(planId);
                planDetail.AllMeals = _dal.GetAllMealsByUserId((int)Session[UserKey]);

                for (int i = 0; i <= 6; i++)
                {
                    planDetail.MealsOnDays.Add(_dal.GetMealsOnDay(planId, i));
                }
            }

            return(GetAuthenticatedView(_nextView, planDetail));
        }
Example #7
0
        public IActionResult EditDetail(PlanDetailViewModel model)
        {
            ViewBag.Plans = _planRepository.GetAllPlans();

            if (ModelState.IsValid)
            {
                var planDetail     = _mapper.Map <PlanDetailViewModel, PlanDetail>(model);
                var detailToUpdate = _planRepository.GetDetailById(model.Id);

                if (detailToUpdate == null)
                {
                    return(NotFound());
                }

                detailToUpdate.ModifiedBy = _admin.Fullname;

                _planRepository.UpdtadeDetail(detailToUpdate, planDetail);

                return(RedirectToAction("detailtable"));
            }
            return(View(model));
        }
 public ActionResult ModifyPlan(PlanDetailViewModel planDetail)
 {
     return(RedirectToAction("GetMealPlan", new { planId = planDetail.Plan.PlanId }));
 }