Exemple #1
0
        public ActionResult PickedTime(int table, int time, DateTime?sdate)
        {
            DateTime date   = sdate.Value;
            string   userId = User.Identity.GetUserId();

            using (IUnitOfWork uow = new UnitOfWork(new DbContextWrap()))
            {
                if (this.CheckPeriod(uow, table, time, date, userId))
                {
                    return(RedirectToAction("MainTable", "Home", new { code = new ReturnCode(ReturnCodeLevel.WARNING, Resource.TableAlreadyPickedWarning, null).ToString(), date = date }));
                }

                //is not after deadline
                if (reservationManager.IsAfterDeadline(uow, sdate.Value) && !User.IsInRole("Admin"))
                {
                    return(RedirectToAction("MainTable", "Home", new { code = new ReturnCode(ReturnCodeLevel.WARNING, Resource.AfterDeadlineWarning, null).ToString(), date = date }));
                }

                var userPickeds = repository.Get <PickedModel, int>(uow,
                                                                    (pick => pick.TableId == table && pick.TimeId == time && pick.UserId == userId),
                                                                    (item => item.Id));
                var pickedModels = userPickeds as IList <PickedModel> ?? userPickeds.Where(pick => pick.PickedDate.Date == date.Date).ToList();
                if (pickedModels.Any())
                {
                    //unpicked
                    foreach (var picked in pickedModels)
                    {
                        repository.Delete <PickedModel>(uow, picked);
                    }
                }
                else
                {
                    //picked
                    var picked = new PickedModel()
                    {
                        UserId     = userId,
                        TableId    = table,
                        TimeId     = time,
                        PickedDate = date,
                        TimeStamp  = DateTime.Now
                    };
                    repository.Add <PickedModel>(uow, picked);
                }

                uow.SaveChanges();
            }

            if (table == 1 || table == 2 || table == 3 || table == 4)
            {
                return(RedirectToAction("MainTable", "Home", new { code = new ReturnCode(ReturnCodeLevel.WARNING, Resource.TablesOneFour, null).ToString(), date = date }));
            }

            return(RedirectToAction("MainTable", "Home", new { code = new ReturnCode(ReturnCodeLevel.RELOAD, Resource.ReloadOK, null).ToString(), date = date }));
        }
Exemple #2
0
 public void AddPicked(PickedModel model)
 {
     this.picked.Add(model.TimeId, model);
 }