public Meeting Initialize(MeetingTemplate meetingTemplate, DateTime dateTime)
        {
            var meeting = new Meeting
            {
                DateTime = dateTime,
                Items    = new List <MeetingItem>(),
            };

            foreach (var meetingItem in meetingTemplate.Items)
            {
                var item = new MeetingItem
                {
                    Description = meetingItem.Role.Description,
                    Role        = meetingItem.Role,
                    StartTime   = meetingItem.StartTime,
                    MinTime     = meetingItem.MinTime,
                    MedTime     = meetingItem.MedTime,
                    MaxTime     = meetingItem.MaxTime,
                    Member      = meetingItem.Member,
                };

                meeting.Items.Add(item);
            }

            return(meeting);
        }
        private void SeedMeetingTemplate()
        {
            var template = new MeetingTemplate
            {
                Name    = "Test meeting template",
                Enabled = true,
                Items   = new[]
                {
                    new MeetingItem
                    {
                        Role        = _roles[0],
                        Description = _roles[0].Description,
                        StartTime   = new TimeSpan(18, 15, 0),
                        MinTime     = new TimeSpan(0, 0, 10),
                        MedTime     = new TimeSpan(0, 0, 12, 30),
                        MaxTime     = new TimeSpan(0, 0, 15)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[1],
                        Description = _roles[1].Description,
                        StartTime   = new TimeSpan(18, 30, 0),
                        MinTime     = new TimeSpan(0, 0, 0, 30),
                        MedTime     = new TimeSpan(0, 0, 0, 45),
                        MaxTime     = new TimeSpan(0, 0, 1)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[2],
                        Description = _roles[2].Description,
                        StartTime   = new TimeSpan(18, 31, 0),
                        MinTime     = new TimeSpan(0, 0, 2),
                        MedTime     = new TimeSpan(0, 0, 2, 30),
                        MaxTime     = new TimeSpan(0, 0, 3)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[3],
                        Description = _roles[3].Description,
                        StartTime   = new TimeSpan(18, 35, 0),
                        MinTime     = new TimeSpan(0, 0, 1),
                        MedTime     = new TimeSpan(0, 0, 1, 30),
                        MaxTime     = new TimeSpan(0, 0, 2)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[4],
                        Description = _roles[4].Description,
                        StartTime   = new TimeSpan(18, 38, 0),
                        MinTime     = new TimeSpan(0, 0, 1),
                        MedTime     = new TimeSpan(0, 0, 1, 30),
                        MaxTime     = new TimeSpan(0, 0, 2)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[5],
                        Description = _roles[5].Description,
                        StartTime   = new TimeSpan(18, 41, 0),
                        MinTime     = new TimeSpan(0, 0, 1),
                        MedTime     = new TimeSpan(0, 0, 1, 30),
                        MaxTime     = new TimeSpan(0, 0, 2)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[6],
                        Description = _roles[6].Description,
                        StartTime   = new TimeSpan(18, 44, 0),
                        MinTime     = new TimeSpan(0, 0, 5),
                        MedTime     = new TimeSpan(0, 0, 6),
                        MaxTime     = new TimeSpan(0, 0, 7)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[7],
                        Description = _roles[7].Description,
                        StartTime   = new TimeSpan(18, 52, 0),
                        MinTime     = new TimeSpan(0, 0, 2),
                        MedTime     = new TimeSpan(0, 0, 2, 30),
                        MaxTime     = new TimeSpan(0, 0, 3)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[6],
                        Description = _roles[8].Description,
                        StartTime   = new TimeSpan(18, 56, 0),
                        MinTime     = new TimeSpan(0, 0, 5),
                        MedTime     = new TimeSpan(0, 0, 6),
                        MaxTime     = new TimeSpan(0, 0, 7)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[7],
                        Description = _roles[0].Description,
                        StartTime   = new TimeSpan(19, 4, 0),
                        MinTime     = new TimeSpan(0, 0, 2),
                        MedTime     = new TimeSpan(0, 0, 2, 30),
                        MaxTime     = new TimeSpan(0, 0, 3)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[8],
                        Description = _roles[8].Description,
                        StartTime   = new TimeSpan(19, 8, 0),
                        MinTime     = new TimeSpan(0, 0, 8),
                        MedTime     = new TimeSpan(0, 0, 9),
                        MaxTime     = new TimeSpan(0, 0, 10)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[9],
                        Description = _roles[9].Description,
                        StartTime   = new TimeSpan(19, 19, 0),
                        MinTime     = new TimeSpan(0, 0, 0, 30),
                        MedTime     = new TimeSpan(0, 0, 0, 45),
                        MaxTime     = new TimeSpan(0, 0, 1)
                    },
                    new MeetingItem
                    {
                        Role        = _roles[10],
                        Description = _roles[10].Description,
                        StartTime   = new TimeSpan(19, 21, 0),
                        MinTime     = new TimeSpan(0, 0, 4),
                        MedTime     = new TimeSpan(0, 0, 5),
                        MaxTime     = new TimeSpan(0, 0, 6)
                    },
                },
            };

            DocumentSession.Store(template);
        }
Beispiel #3
0
        public ActionResult Index()
        {
            var ctx       = new BlogDbContext();
            var viewmodel = new CalendarIndexViewModel();

            viewmodel.ProfilesToMeetings = ctx.ProfilesToMeetings.ToList();
            viewmodel.Meetings           = ctx.Meetings.Where(x => x.EveryoneAnswered == true && x.MeetingDateTime != null).OrderBy(x => x.MeetingDateTime).ToList();
            var user = User.Identity.GetUserId();

            ViewBag.people = ctx.Profiles.Where(x => x.ProfileID != user).ToList();

            var InviteIDs = ctx.Invites.Where(x => x.ProfileID == user && x.Accepted == false).ToList();

            ViewBag.inviteInformation = new List <InviteModel>();

            foreach (var invite in InviteIDs)
            {
                var DateIds = new List <int>();
                DateIds = ctx.MeetingDateOptionsToInvite.Where(x => x.InviteID == invite.InviteID).Select(x => x.MeetingDateOptionID).ToList();

                var dateDetails = new List <DateTime>();

                foreach (var dateid in DateIds)
                {
                    dateDetails.Add(ctx.MeetingOptions.Where(x => x.OptionID == dateid).Select(x => x.Date).Single());
                }

                string meetingName = ctx.Invites.Where(x => x.InviteID == invite.InviteID).Select(x => x.MeetingName).Single();
                var    meetingId   = ctx.Invites.Where(x => x.InviteID == invite.InviteID).Single();

                var meetingCreator = ctx.Meetings.FirstOrDefault(x => x.MeetingID == meetingId.MeetingID);

                var creatorFirstname = ctx.Profiles.Where(x => x.ProfileID == meetingCreator.ProfileId).Select(x => x.Forename).Single();
                var creatorSurname   = ctx.Profiles.Where(x => x.ProfileID == meetingCreator.ProfileId).Select(x => x.Surname).Single();

                var creatorName = creatorFirstname + " " + creatorSurname;

                var inviteTemplate = new InviteModel()
                {
                    MeetingID       = invite.MeetingID,
                    MeetingName     = invite.MeetingName,
                    Creator         = creatorName,
                    DateSuggestion1 = dateDetails[0],
                    DateSuggestion2 = dateDetails[1],
                    InviteId        = invite.InviteID
                };

                ViewBag.inviteInformation.Add(inviteTemplate);
            }

            var meetingInformation = ctx.Meetings.Where(x => x.ProfileId == user && x.EveryoneAnswered == true && x.MeetingDateTime == null).ToList();

            ViewBag.meetingInfo = new List <MeetingTemplate>();

            foreach (var meeting in meetingInformation)
            {
                var invited   = ctx.ProfilesToMeetings.Where(x => x.MeetingID == meeting.MeetingID).Select(x => x.Profile).ToList();
                var meetingID = meeting.MeetingID;

                var dates = (from dateNames in ctx.MeetingOptions
                             join dateIDs in ctx.MeetingDateOptionsToInvite
                             on dateNames.OptionID equals dateIDs.MeetingDateOptionID
                             join invites in ctx.Invites
                             on dateIDs.InviteID equals invites.InviteID
                             where invites.MeetingID == meetingID
                             select dateNames.Date).ToList();

                if (dates.Count > 0)
                {
                    var date1 = dates[0];
                    var date2 = dates[1];

                    var date1Amount = ctx.Invites.Where(x => x.MeetingID == meeting.MeetingID && x.ChosenDate == date1).ToList();
                    var date2Amount = ctx.Invites.Where(x => x.MeetingID == meeting.MeetingID && x.ChosenDate == date2).ToList();

                    var meetingTemplate = new MeetingTemplate()
                    {
                        MeetingName  = meeting.Name,
                        Participants = invited,
                        MeetingID    = meeting.MeetingID,
                        Date1        = dates[0],
                        Date2        = dates[1],
                        Date1Voters  = date1Amount.Count,
                        Date2Voters  = date2Amount.Count,
                    };

                    ViewBag.meetingInfo.Add(meetingTemplate);
                }
                else
                {
                    var meetingTemplate = new MeetingTemplate()
                    {
                        MeetingName = meeting.Name,
                    };
                    ViewBag.meetingInfo.Add(meetingTemplate);
                }
            }

            return(View(viewmodel));
        }