public void SetUp()
 {
     _dayModel = new Day {
         Date  = new DateTime(2014, 8, 26),
         Slots = new List <Slot> {
             new Slot {
                 StartTime = new DateTime(2014, 8, 26, 7, 30, 0)
             }
         }
     };
     _sut = new AgendaDayViewModel(_dayModel);
 }
Exemple #2
0
        public void SetUp()
        {
            _repository  = new MockRepository();
            _timeService = new MockTimeService();
            _sut         = new AgendaViewModel(_repository, _timeService)
            {
                AgendaDays = new List <AgendaDayViewModel> {
                    new AgendaDayViewModel {
                        Date = new DateTime(2014, 10, 6)
                    },
                    new AgendaDayViewModel {
                        Date = new DateTime(2014, 10, 7)
                    },
                    new AgendaDayViewModel {
                        Date = new DateTime(2014, 10, 8)
                    }
                }
            };

            _firstDay = _sut.AgendaDays.First();
            _lastDay  = _sut.AgendaDays.Last();
        }
        public PartialViewResult Agenda()
        {
            var model = new AgendaViewModel();

            var user = UserManager.FindByName(User.Identity.Name);


            var begin = DateTime.Today;
            var end   = DateTime.Today.AddDays(7);

            // Alle Dates bei denen der Benutzer als Dozent eingetragen ist
            var lectureDates =
                Db.ActivityDates.Where(d =>
                                       d.Hosts.Any(l => !string.IsNullOrEmpty(l.UserId) && l.UserId.Equals(user.Id)) &&
                                       d.End >= begin && d.End <= end).OrderBy(d => d.Begin).ToList();

            foreach (var date in lectureDates)
            {
                var agendaDay = model.Days.SingleOrDefault(d => d.Day.Date == date.Begin.Date);
                if (agendaDay == null)
                {
                    agendaDay = new AgendaDayViewModel
                    {
                        Day = date.Begin.Date
                    };
                    model.Days.Add(agendaDay);
                }

                var agendaActivity = new AgendaActivityViewModel
                {
                    Date = date
                };

                agendaDay.Activities.Add(agendaActivity);
            }

            // Alle Eintragungen
            var subscriptions =
                Db.ActivityDates.Where(d =>
                                       (d.Activity.Occurrence.Subscriptions.Any(s => s.UserId.Equals(user.Id)) ||
                                        d.Occurrence.Subscriptions.Any(s => s.UserId.Equals(user.Id)) ||
                                        d.Slots.Any(slot => slot.Occurrence.Subscriptions.Any(s => s.UserId.Equals(user.Id)))) &&
                                       d.End >= begin && d.End <= end).OrderBy(d => d.Begin).ToList();

            foreach (var date in subscriptions)
            {
                var agendaDay = model.Days.SingleOrDefault(d => d.Day.Date == date.Begin.Date);
                if (agendaDay == null)
                {
                    agendaDay = new AgendaDayViewModel
                    {
                        Day = date.Begin.Date
                    };
                    model.Days.Add(agendaDay);
                }

                var agendaActivity = new AgendaActivityViewModel
                {
                    Date = date
                };

                // den slot prüfen
                agendaActivity.Slot =
                    date.Slots.FirstOrDefault(x => x.Occurrence.Subscriptions.Any(s => s.UserId.Equals(user.Id)));

                agendaDay.Activities.Add(agendaActivity);
            }



            return(PartialView(model));
        }