Example #1
0
        public ActionResult Reports(string sdate, string[] IsWeekly)
        {
            var model = new ReservationPrintable();

            model.IsWeekly = true;
            if (IsWeekly != null)
            {
                model.IsWeekly = Boolean.Parse(IsWeekly[0]);
            }

            var date = sdate == null ? DateTime.Today : DateTime.ParseExact(sdate, "dd.MM.yyyy", CultureInfo.InvariantCulture);

            if (model.IsWeekly)
            {
                var diff = date.DayOfWeek - CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
                if (diff < 0)
                {
                    diff += 7;
                }
                date = date.AddDays(-diff);
            }
            model.Date = date;

            using (IUnitOfWork uow = new UnitOfWork(new DbContextWrap()))
            {
                var days = model.IsWeekly ? 5 : 1;

                for (var i = 0; i < days; i++)
                {
                    var view = new ReservationView
                    {
                        Tables = _repository.GetAll <TableModel>(uow).ToList(),
                        Times  = _repository.GetAll <TimeModel>(uow).ToList(),
                        Date   = date.AddDays(i)
                    };
                    view.Day = _reservationManager.GetReservationsForDate(uow, view.Date, view.Tables, User.Identity.GetUserId());

                    var users = _reservationManager.GetUsersForDate(uow, view.Date);
                    model.AddUsers(HttpContext.GetOwinContext()
                                   .GetUserManager <ApplicationUserManager>()
                                   .Users
                                   .Where(u => users.Contains(u.Id))
                                   .Select(u => new MyUser {
                        Id = u.Id, UserName = u.UserName, Name = u.Name
                    })
                                   .ToList()
                                   .ToDictionary(u => u.Id));
                    model.AddDay(view);
                }
            }

            return(View("Reports", model));
        }
Example #2
0
        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));
        }