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 })); }
public void AddPicked(PickedModel model) { this.picked.Add(model.TimeId, model); }