Beispiel #1
0
        public async Task <IActionResult> Create(string week, Guid roomId)
        {
            var user = await GetCurrentUserAsync();

            if (user == null)
            {
                return(Redirect("/"));
            }
            else
            {
                DateTime WeekOf;
                if (String.IsNullOrEmpty(week))
                {
                    WeekOf = DateTime.Today;
                }
                else
                {
                    WeekOf = DateTime.Parse(week);
                }

                var currentDayOfWeek = (int)WeekOf.DayOfWeek;
                var sunday           = WeekOf.AddDays(-currentDayOfWeek);
                var events           = (roomId == null) ? new List <RoomReservation>() : await _context.RoomReservation.Where(i => i.Room.ID == roomId && i.Start > sunday && i.Start < sunday.AddDays(7)).ToListAsync();

                return(View(new CreateViewModel
                {
                    Sunday = sunday,
                    RoomId = roomId,
                    Rooms = await _context.Rooms.ToListAsync(),
                    Events = events,
                }));
            }
        }
        public async Task <IActionResult> Index(string week, string view)
        {
            var user = await GetCurrentUserAsync();

            if (user == null)
            {
                return(View("IndexLogin"));
            }
            else
            {
                ApplicationUser target;
                if (!string.IsNullOrEmpty(view))
                {
                    var _u = _context.Users.FirstOrDefault(i => i.Id == view);
                    if (_u == null)
                    {
                        return(Redirect("/?danger=user not found"));
                    }
                    if (!await _context.CanView(user, _u))
                    {
                        return(Redirect("/?danger=we are not allowed to view this calendar"));
                    }
                    target = _u;
                }
                else
                {
                    target = user;
                }
                DateTime WeekOf;
                if (String.IsNullOrEmpty(week))
                {
                    WeekOf = DateTime.Today;
                }
                else
                {
                    WeekOf = DateTime.Parse(week);
                }

                var currentDayOfWeek = (int)WeekOf.DayOfWeek;
                var sunday           = WeekOf.AddDays(-currentDayOfWeek);

                return(View(new IndexViewModel {
                    Sunday = sunday,
                    Events = await _context.LoadUserEvents(target, user, sunday),
                    User = target
                }));
            }
        }