public ActionResult Save(DateTime?sdate) { try { var date = sdate.Value; using (IUnitOfWork uow = new UnitOfWork(new DbContextWrap())) { var picked = reservationManager.GetPickedForDateAndUser(uow, date, User.Identity.GetUserId()); if (picked.Count == 0) { return(RedirectToAction("MainTable", "Home", new { code = new ReturnCode(ReturnCodeLevel.WARNING, Resource.ReservationExpired, null).ToString(), date = date })); } var emailsData = new List <KeyValuePair <string, TimeSpan> >(); foreach (var pick in picked) { var model = new ReservationModel() { Date = pick.PickedDate, TableId = pick.TableId, TimeId = pick.TimeId, UserId = pick.UserId }; repository.Delete <PickedModel>(uow, pick); repository.Add <ReservationModel>(uow, model); var table = repository.Get <TableModel, int>(uow, item => item.Id == pick.TableId, item => item.Id) .First().Number.ToString(); var time = repository.Get <TimeModel, int>(uow, item => item.Id == pick.TimeId, item => item.Id) .First().StartTime; var data = new KeyValuePair <string, TimeSpan>(table, time); emailsData.Add(data); } emailController.SendReservationConfirmation(User.Identity.GetUserName(), emailsData, sdate.Value.ToString("MM/dd/yyyy")); uow.SaveChanges(); } return(RedirectToAction("MainTable", "Home", new { code = new ReturnCode(ReturnCodeLevel.SUCCESS, Resource.ReservationSuccess, Resource.ReservationSuccessReason).ToString(), date = date })); } catch (Exception ex) { logger.Error(ex.Message + Environment.NewLine + ex.StackTrace); return(RedirectToAction("MainTable", "Home", new { code = new ReturnCode(ReturnCodeLevel.ERROR, Resource.WriteAnAdministrator, ex.Message).ToString() })); } }
public ActionResult MainTable(string code, DateTime?date) { var model = new ReservationView(); try { model.Date = date ?? DateTime.Now.Date; using (IUnitOfWork uow = new UnitOfWork(new DbContextWrap())) { if (tables == null) { tables = repository.GetAll <TableModel>(uow).ToList(); } model.Tables = tables; if (times == null) { times = timeManager.GetTimesForDayOfTheWeek(uow, model.Date); if (!times.Any()) { times = repository.GetAll <TimeModel>(uow).ToList(); model.Day = new DayReservation(true); } } model.Times = times; model.IsPicked = reservationManager.GetPickedForDateAndUser(uow, model.Date, User.Identity.GetUserId()).Any(); if (!model.Day.IsCancelled) { model.Day = reservationManager.GetReservationsForDate(uow, model.Date, tables, User.Identity.GetUserId()); } } model.ReturnCode = ReturnCode.FromString(code) ?? new ReturnCode(ReturnCodeLevel.RELOAD, Resource.ReloadOK, null); ModelState.Clear(); } catch (Exception ex) { model.ReturnCode.Error(ex.Message); logger.Error(ex.Message); } return(View(model)); }