예제 #1
0
        public async Task Map_Should_Not_Set_MeetupModel_Attendees_If_Meetup_Attendees_Is_Null_Or_Empty()
        {
            MeetupModelMapperMock mock = MeetupModelMapperMock.Create();

            var meetup = new Meetup()
            {
                Id          = 1,
                Title       = "Birinci",
                Description = "Hede",
                MeetupLink  = "sample.com",
                Date        = DateTime.Now,
                Attendees   = null,
                Photos      = new[] { "" }
            };

            MeetupModel meetupModel = await mock.Map(meetup);

            void AssertVerify()
            {
                mock.PersonService.Reset();

                mock.PersonService.Verify(service => service.GetPeopleByNames(It.IsAny <IList <string> >()), Times.Never);
                Assert.Null(meetupModel.Attendees);
            }

            AssertVerify();

            meetup.Attendees = new string[0];
            meetupModel      = await mock.Map(meetup);

            AssertVerify();
        }
예제 #2
0
        public async Task Map_Should_Not_Set_MeetupModel_Sponsors_If_Meetup_SponsorIds_Is_Null_Or_Empty()
        {
            MeetupModelMapperMock mock = MeetupModelMapperMock.Create();

            var meetup = new Meetup()
            {
                Id          = 1,
                Title       = "Birinci",
                Description = "Hede",
                MeetupLink  = "sample.com",
                Date        = DateTime.Now,
                SponsorIds  = null
            };

            MeetupModel meetupModel = await mock.Map(meetup);

            void AssertVerify()
            {
                mock.SponsorService.Reset();

                mock.SponsorService.Verify(service => service.GetSponsorsByIds(It.IsAny <IList <int> >()), Times.Never);
                Assert.Null(meetupModel.Sponsors);
            }

            AssertVerify();

            meetup.SponsorIds = new int[0];
            meetupModel       = await mock.Map(meetup);

            AssertVerify();
        }
예제 #3
0
        public static string GetMonthAndYear(this MeetupModel meetupModel)
        {
            if (!meetupModel.StartTime.HasValue)
            {
                return("TBA");
            }

            var start = meetupModel.StartTime.Value.ToEventTimeZone();

            if (DateTime.Today.Year == start.Year)
            {
                if (DateTime.Today.DayOfYear == start.DayOfYear)
                {
                    return(AppResources.Today);
                }

                if (DateTime.Today.DayOfYear + 1 == start.DayOfYear)
                {
                    return(AppResources.Tomorrow);
                }
            }

            var monthAndYear = start.ToString("MMMM yyyy", AppResources.Culture).ToTitleCase();

            return($"{monthAndYear}");
        }
        public ActionResult Uninvite(int user, int theEvent, string returnTo)
        {
            //Check if user owns the event and remove the other user from it
            MeetupModel model  = new MeetupModel();
            int?        infoID = this.UserId();

            if (infoID is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            Event  uninviteToEvent = model.Events.SingleOrDefault(e => e.Id == theEvent && e.HostUserId == infoID);
            Invite invite          = model.Invites.SingleOrDefault(i => i.EventId == theEvent && i.UserId == user);

            if (uninviteToEvent is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            //Remove invite
            if (!(invite is null))
            {
                model.Invites.Remove(invite);
                model.SaveChanges();
            }

            return(Redirect(returnTo));
        }
예제 #5
0
        public async Task Map_Should_Set_MeetupModel_Videos_If_Meetup_VideoIds_Is_Not_Null_Or_Empty()
        {
            MeetupModelMapperMock mock = MeetupModelMapperMock.Create();

            var videoTitle = "Live Coding";

            var meetup = new Meetup()
            {
                Id          = 1,
                Title       = "Birinci",
                Description = "Hede",
                MeetupLink  = "sample.com",
                Date        = DateTime.Now,
                VideoIds    = new[] { 1 }
            };

            mock.VideoService
            .Setup(service => service.GetVideosByIds(It.Is <IList <int> >(list => list.Any(s => meetup.VideoIds.Contains(s)))))
            .ReturnsAsync(() => new List <VideoModel> {
                new VideoModel()
                {
                    Id = 1, Title = videoTitle
                }
            });

            MeetupModel meetupModel = await mock.Map(meetup);

            mock.PersonService.Verify(service => service.GetPeopleByNames(It.IsAny <IList <string> >()), Times.Never);
            mock.VideoService.Verify(service => service.GetVideosByIds(It.IsAny <IList <int> >()), Times.Once);
            mock.SponsorService.Verify(service => service.GetSponsorsByIds(It.IsAny <IList <int> >()), Times.Never);

            Assert.NotNull(meetupModel.Videos);
            Assert.Equal(meetupModel.Videos.Length, meetup.VideoIds.Length);
            Assert.Equal(videoTitle, meetupModel.Videos[0].Title);
        }
        /// <summary>
        /// An action returning a page where a user can (un)invite another user to an event
        /// </summary>
        /// <param name="id">The id of the user to (un)invite</param>
        /// <returns>if user exists: the (un)invite page</returns>
        public ActionResult Invite(int id)
        {
            int?infoID = this.UserId();

            if (infoID is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            //Finds the user and the events the user is in and isnt in
            MeetupModel        model     = new MeetupModel();
            InviteToEventModel viewModel = new InviteToEventModel();

            viewModel.IsInvitedTo = model.Events.Where(e => e.HostUserId == infoID && e.Invites.Any(u => u.UserId == id)).ToList();
            viewModel.CanInviteTo = model.Events.Where(e => e.HostUserId == infoID && !e.Invites.Any(u => u.UserId == id)).ToList();
            viewModel.Inviting    = model.Users.SingleOrDefault(u => u.Id == id);
            if (viewModel.Inviting is null)
            {
                return(RedirectToAction("List", "User"));
            }

            viewModel.CameFrom = Request.UrlReferrer.ToString();

            return(View(viewModel));
        }
        /// <summary>
        /// An action returning a page used to create a meeting list
        /// </summary>
        /// <param name="id">The event to create the list for</param>
        /// <returns>if the user owns the event: Returns a page where the user can create a meeting list</returns>
        public ActionResult CreateList(int id)
        {
            MeetupModel model = new MeetupModel();

            //Checks if the user owns the event or not
            int?  infoID   = this.UserId();
            Event theEvent = model.Events.SingleOrDefault(e => e.Id == id && e.HostUserId == infoID);

            if (theEvent is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            EventListCreationModel viewModel = new EventListCreationModel();

            viewModel.EventInformation = theEvent;
            viewModel.EventId          = theEvent.Id;

            if (viewModel.EventInformation.Invites.Count < 2)
            {
                return(View("NotEnoughPeople", viewModel));
            }

            return(View(viewModel));
        }
        /// <summary>
        /// An action returning a page showing all users
        /// </summary>
        /// <param name="viewModel">The view model containing search information</param>
        /// <returns>Returns a page with a list of all users (only returns users searched for if searched)</returns>
        public ActionResult Index(UserListModel viewModel)
        {
            MeetupModel model = new MeetupModel();

            if (viewModel is null)
            {
                viewModel = new UserListModel();
            }
            viewModel.Users = model.Users.ToList();

            //Get users
            if (viewModel.PageNumber <= 0)
            {
                viewModel.PageNumber = 1;
            }
            IEnumerable <User> users = viewModel.Users;

            if (!string.IsNullOrWhiteSpace(viewModel.SearchString))
            {
                //Search for a user's name
                users = users.Where(u => u.FullName.ToLower().Contains(viewModel.SearchString.ToLower())).ToList();
            }
            viewModel.Users = users.Skip((viewModel.PageNumber - 1) * usersPerPage).Take(usersPerPage).ToList();

            //Calculate page numbers
            viewModel.MaxPages       = (int)Math.Ceiling(users.Count() / (double)usersPerPage);
            viewModel.FirstShownPage = Math.Max(1, viewModel.PageNumber - pagesToShow);
            viewModel.LastShownPage  = Math.Min(viewModel.MaxPages, viewModel.PageNumber + pagesToShow) + 1;

            return(View(viewModel));
        }
예제 #9
0
        public async Task Map_Should_Set_MeetupModel_Attendees_If_Meetup_Attendees_Is_Not_Null_Or_Empty()
        {
            MeetupModelMapperMock mock = MeetupModelMapperMock.Create();

            var attendeeName = "Deniz İrgin";

            var meetup = new Meetup()
            {
                Id          = 1,
                Title       = "Birinci",
                Description = "Hede",
                MeetupLink  = "sample.com",
                Date        = DateTime.Now,
                Attendees   = new[] { attendeeName }
            };

            mock.PersonService
            .Setup(service => service.GetPeopleByNames(It.Is <IList <string> >(list => list.Any(s => meetup.Attendees.Contains(s)))))
            .ReturnsAsync(() => new List <Person> {
                new Person()
                {
                    Id = 1, Name = attendeeName
                }
            });

            MeetupModel meetupModel = await mock.Map(meetup);

            mock.PersonService.Verify(service => service.GetPeopleByNames(It.IsAny <IList <string> >()), Times.Once);
            mock.VideoService.Verify(service => service.GetVideosByIds(It.IsAny <IList <int> >()), Times.Never);
            mock.SponsorService.Verify(service => service.GetSponsorsByIds(It.IsAny <IList <int> >()), Times.Never);

            Assert.NotNull(meetupModel.Attendees);
            Assert.Equal(meetupModel.Attendees.Length, meetup.Attendees.Length);
            Assert.Equal(attendeeName, meetupModel.Attendees[0].Name);
        }
예제 #10
0
        public async Task GetMeetup_By_Id_Should_Return_Call_IMeetupModelMapper_Map()
        {
            MeetupServiceMock mock = MeetupServiceMock.Create();

            var id = 1;

            var meetup = new Meetup()
            {
                Id = id, Title = "Dotnet Core"
            };

            mock.MeetupRepository
            .Setup(repository => repository.GetMeetupById(It.Is <int>(i => i == id)))
            .ReturnsAsync(() => new Meetup()
            {
                Id = id, Title = "Dotnet Core"
            });

            mock.MeetupModelMapper
            .Setup(mapper => mapper.Map(It.Is <Meetup>(m => m.Id == meetup.Id && m.Title == meetup.Title)))
            .ReturnsAsync(() => new MeetupModel());

            MeetupModel meetupModel = await mock.GetMeetupById(id);

            mock.MeetupModelMapper.Verify(mapper => mapper.Map(It.IsAny <Meetup>()), Times.Once);
            Assert.NotNull(meetupModel);
        }
        public async Task <MeetupModel> GetMeetupById(int id)
        {
            Meetup meetup = await _meetupRepository.GetMeetupById(id);

            MeetupModel meetupModel = await _meetupModelMapper.Map(meetup);

            return(meetupModel);
        }
예제 #12
0
        public MeetupDetailsPage(MeetupModel meetup)
        {
            this.InitializeComponent();

            this.BindingContext = new MeetupDetailsViewModel(this.Navigation, meetup);

            this.ItemId = meetup.Id;
        }
예제 #13
0
        public static string GetDisplayDate(this MeetupModel meetupModel)
        {
            if (!meetupModel.StartTime.HasValue || !meetupModel.EndTime.HasValue || meetupModel.StartTime.Value.IsTba())
            {
                return(AppResources.ToBeAnnounced);
            }

            return(meetupModel.StartTime.Value.ToString("d"));
        }
예제 #14
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            MeetupModel meetupModel = await db.Meetup.FindAsync(id);

            db.Meetup.Remove(meetupModel);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #15
0
        public async Task Map_Should_Return_Null_If_Meetup_Is_Null()
        {
            MeetupModelMapperMock mock = MeetupModelMapperMock.Create();

            Meetup meetup = null;

            MeetupModel meetupModel = await mock.Map(meetup);

            Assert.Null(meetupModel);
        }
예제 #16
0
        public async Task <ActionResult> Edit([Bind(Include = "id")] MeetupModel meetupModel)
        {
            if (ModelState.IsValid)
            {
                db.Entry(meetupModel).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(meetupModel));
        }
예제 #17
0
        public MeetupViewModel(INavigation navigation, MeetupModel meetupModel = null)
            : base(navigation)
        {
            this.MeetupModel = meetupModel;

            MessagingCenter.Subscribe <LocalizedResources>(
                this,
                MessageKeys.LanguageChanged,
                sender => this.OnPropertyChanged(nameof(this.MeetupDate)));

            this.TapVenueCommand = new Command(this.OnVenueTapped);
        }
예제 #18
0
        public async Task <ActionResult> Create([Bind(Include = "id")] MeetupModel meetupModel)
        {
            if (ModelState.IsValid)
            {
                db.Meetup.Add(meetupModel);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(meetupModel));
        }
        /// <summary>
        /// An action returning a page to a user can edit their profile
        /// </summary>
        /// <returns>If logged in: Returns a page where a user can edit their profile</returns>
        public ActionResult Edit()
        {
            MeetupModel model = new MeetupModel();
            List <User> users = model.Users.ToList();

            int?infoID = this.UserId();

            if (infoID is null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            User editUser = users.SingleOrDefault(userInfo => userInfo.Id == infoID);

            UserEditorModel editModel = new UserEditorModel();

            //Get business list
            List <Business> selectedBusinesses   = editUser.GetBusinesses().ToList();
            List <Business> unselectedBusinesses = model.Businesses.ToList().Except(selectedBusinesses).ToList();

            //Get interest list
            List <Interest> selectedInterests   = editUser.GetInterests().ToList();
            List <Interest> unselectedInterests = model.Interests.ToList().Except(selectedInterests).ToList();

            editModel.UnselectedBusinesses = unselectedBusinesses;
            editModel.SelectedBusinesses   = selectedBusinesses;
            editModel.UnselectedInterests  = unselectedInterests;
            editModel.SelectedInterests    = selectedInterests;
            editModel.Description          = editUser.Description;
            editModel.FirstName            = editUser.FirstName;
            editModel.LastName             = editUser.LastName;

            editModel.Address              = new AddressModel();
            editModel.Address.City         = editUser.Address.CityName;
            editModel.Address.Country      = editUser.Address.Country;
            editModel.Address.CityZipCode  = editUser.Address.ZipCode.ToString();
            editModel.Address.StreetName   = editUser.Address.StreetName;
            editModel.Address.StreetNumber = editUser.Address.StreetNumber;

            editModel.Organizations = new List <OrganizationModel>();
            foreach (UsersOrganizations organization in editUser.UsersOrganizations)
            {
                editModel.Organizations.Add(new OrganizationModel()
                {
                    Id        = organization.Id,
                    Name      = organization.Organization.Name,
                    EndDate   = organization.EndDate,
                    StartDate = organization.StartDate,
                    State     = "old"
                });
            }

            return(View(editModel));
        }
예제 #20
0
        // GET: MeetupModels/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MeetupModel meetupModel = await db.Meetup.FindAsync(id);

            if (meetupModel == null)
            {
                return(HttpNotFound());
            }
            return(View(meetupModel));
        }
        public async Task <IActionResult> MeetupById(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            MeetupModel meetupModel = await _meetupService.GetMeetupById(id);

            if (meetupModel == null)
            {
                return(NotFound());
            }

            return(Ok(meetupModel));
        }
        /// <summary>
        /// An action returning a page with a list of all seances in an event
        /// </summary>
        /// <param name="id">The id of the event to show seances for</param>
        /// <returns>If user is in the event: Returns a page to view seances for the event</returns>
        public ActionResult Seances(int id)
        {
            //Get event and make sure user is in it
            MeetupModel model  = new MeetupModel();
            int?        infoId = this.UserId();

            if (infoId is null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            SeanceViewModel viewModel = new SeanceViewModel();

            viewModel.Event = model.Events.SingleOrDefault(e => e.Id == id && (e.HostUserId == infoId || e.Invites.Any(u => u.UserId == infoId)));
            if (viewModel.Event is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            //sort seance list
            List <Seance> seances        = viewModel.Event.Seances.ToList();
            List <Seance> sortedMeetings = new List <Seance>();

            foreach (Seance meeting in seances)
            {
                bool sorted = false;
                for (int i = 0; i < sortedMeetings.Count; i++)
                {
                    if (meeting.MeetingNumber < sortedMeetings[i].MeetingNumber)
                    {
                        sortedMeetings.Insert(i, meeting);
                        sorted = true;
                        break;
                    }
                }
                if (!sorted)
                {
                    sortedMeetings.Add(meeting);
                }
            }

            viewModel.Seances = viewModel.Event.Seances.ToList();
            viewModel.UserId  = infoId.Value;

            return(View(viewModel));
        }
        /// <summary>
        /// An action returning a page showing an event
        /// </summary>
        /// <param name="id">The id of the event to show</param>
        /// <returns>If user is in the event: Returns a page containing information about the event</returns>
        public ActionResult Page(int id)
        {
            //Find the event and makes sure you are in it (dont show if the user isnt invited/owns the event)
            int?           infoID    = this.UserId();
            MeetupModel    model     = new MeetupModel();
            EventPageModel viewModel = new EventPageModel();

            viewModel.Event = model.Events.SingleOrDefault(e => e.Id == id && (e.Invites.Any(i => i.UserId == infoID) || e.HostUserId == infoID));
            if (viewModel.Event is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            //Check if the user owns the event
            viewModel.UserID = infoID.Value;
            if (viewModel.Event.HostUserId == infoID)
            {
                viewModel.EventOwner = true;
            }

            //Creates the list of all users invited to the event
            viewModel.Invited      = viewModel.Event.Invites.Any(i => i.UserId == infoID);
            viewModel.InvitedUsers = viewModel.Event.GetUsers().ToList();

            //Creates the list of all seances/meetings with this user
            List <Seance> seances = viewModel.Event.Seances.ToList();

            viewModel.Meetings = new List <Meeting>();
            foreach (Seance seance in seances)
            {
                Meeting meeting = seance.Meetings.SingleOrDefault(m => m.MeetingContainsUser(infoID.Value));
                if (!(meeting is null))
                {
                    viewModel.Meetings.Add(meeting);
                }
            }

            //Gets a list of the user's wishes for the event
            viewModel.UserWishes = new List <Wish>();
            User user = model.Users.SingleOrDefault(u => u.Id == viewModel.UserID);

            viewModel.UserWishes = user.Wishes.Where(w => w.EventId == viewModel.Event.Id).ToList();

            return(View(viewModel));
        }
예제 #24
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                //find user id
                MeetupModel meetupModel = new MeetupModel();
                List <User> users       = meetupModel.Users.ToList();
                Random      random      = new Random();
                int         randomID;
                do
                {
                    randomID = random.Next(0, int.MaxValue);
                }while(users.Any(userInfo => userInfo.Id == randomID));

                //Check picture
                if (!model.Picture.ContentType.Contains("image"))
                {
                    ModelState.AddModelError("Picture", "Feltet \"Profil billed\" accepterer kun billeder.");
                    return(View(model));
                }
                string pictureDataString = model.Picture.PictureFileToString();

                //add user
                ApplicationUser user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, InfoId = randomID
                };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    Address usersAddress = new Address(model.Address.Country, model.Address.City, Convert.ToInt32(model.Address.CityZipCode), model.Address.StreetName, model.Address.StreetNumber);
                    User    newUser      = new User(model.FirstName, model.LastName, model.Description, "data:image/png;base64," + pictureDataString, model.Email, usersAddress, randomID);
                    meetupModel.Users.Add(newUser);
                    meetupModel.SaveChanges();

                    return(RedirectToAction("Profile", "Users", new { Id = randomID }));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
예제 #25
0
        /// <summary>
        /// An action returning the home page
        /// </summary>
        /// <returns>Returns the home page</returns>
        public ActionResult Index()
        {
            //If user ins't logged in return normal home page
            int?infoID = this.UserId();

            if (infoID is null)
            {
                return(View());
            }
            //If user is logged in return information page
            MeetupModel    model     = new MeetupModel();
            UserIndexModel viewModel = new UserIndexModel();
            User           user      = model.Users.SingleOrDefault(u => u.Id == infoID);

            //Create list of upcoming events
            viewModel.NextEvents = new List <Event>();
            List <Invite> invites = user.Invites.ToList();

            foreach (Invite invite in invites)
            {
                if (invite.Event.BeginningTime >= DateTime.Now)
                {
                    viewModel.NextEvents.Add(invite.Event);
                }
            }
            viewModel.NextEvents.Sort(Event.Sort);
            viewModel.NextEvents = viewModel.NextEvents.Take(5).ToList();

            //Get wish count for the events
            viewModel.WishesPerEvent = new List <int>();
            for (int i = 0; i < viewModel.NextEvents.Count; i++)
            {
                viewModel.WishesPerEvent.Add(user.Wishes.Count(w => w.EventId == viewModel.NextEvents[i].Id));
            }

            //Create list of newly invited to events
            viewModel.NewEvents = new List <Event>();
            invites.Sort(Invite.Sort);
            invites = invites.Take(5).ToList();
            foreach (Invite invite in invites)
            {
                viewModel.NewEvents.Add(invite.Event);
            }
            return(View("UserIndex", viewModel));
        }
예제 #26
0
        public async Task <IEnumerable <MeetupModel> > Map(IEnumerable <Meetup> meetups)
        {
            if (meetups == null)
            {
                return(null);
            }

            IList <MeetupModel> meetupModels = new List <MeetupModel>();

            foreach (Meetup meetup in meetups)
            {
                MeetupModel meetupModel = await Map(meetup);

                meetupModels.Add(meetupModel);
            }

            return(meetupModels);
        }
예제 #27
0
        public MeetupDetailsViewModel(INavigation navigation, MeetupModel meetupModel = null)
            : base(navigation)
        {
            MeetupModel = meetupModel;

            MessagingCenter.Subscribe <LocalizedResources>(
                this,
                MessageKeys.LanguageChanged,
                sender =>
            {
                MeetupDetailsPageItems.ReplaceRange(GetMeetupDetailsPageItems());
            }
                );

            UpdateRemainderStatusCommand.Execute(parameter: null);

            MeetupDetailsPageItems.ReplaceRange(GetMeetupDetailsPageItems());
        }
        /// <summary>
        /// An action returning a page showing all the user's events
        /// </summary>
        /// <returns>If user is logged in: Returns a page showing events</returns>
        public ActionResult Index()
        {
            MeetupModel model  = new MeetupModel();
            int?        infoID = this.UserId();

            if (infoID is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            ViewEventsModel viewModel = new ViewEventsModel();
            User            thisUser  = model.Users.SingleOrDefault(userInfo => userInfo.Id == infoID);

            viewModel.OwnedEvents     = model.Events.Where(e => e.HostUserId == thisUser.Id).ToList();
            viewModel.InvitedToEvents = thisUser.Invites.ToList();

            return(View(viewModel));
        }
예제 #29
0
        /// <summary>
        /// An action returning a page where the user can edit a wish
        /// </summary>
        /// <param name="id">The wish to edit</param>
        /// <returns>if wish exists and is owned by the user: The edit page for the wish</returns>
        public ActionResult Edit(int id)
        {
            //Checks if user is logged in, is in the event and owns the wish
            int?infoID = this.UserId();

            if (infoID is null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            MeetupModel model       = new MeetupModel();
            Wish        editingWish = model.Wishes.SingleOrDefault(w => w.UserId == infoID && w.Id == id);

            if (editingWish is null || !editingWish.Event.Invites.Any(u => u.UserId == infoID))
            {
                return(RedirectToAction("Index", "Home"));
            }

            WishEditCreateModel viewModel = GetFilledWishCreateEditModel(editingWish.Event, infoID.Value);

            viewModel.WishInformation = editingWish;
            viewModel.WishId          = editingWish.Id;

            //Creates list of chosen and unchosen interests
            viewModel.ChosenInterestsList = viewModel.WishInformation.GetInterests().ToList();
            viewModel.UnchosenInterests   = viewModel.UnchosenInterests.Except(viewModel.ChosenInterestsList).ToList();

            //Creates list of chosen and unchosen businesses
            viewModel.ChosenBusinessesList = viewModel.WishInformation.GetBusinesses().ToList();
            viewModel.UnchosenBusinesses   = viewModel.UnchosenBusinesses.Except(viewModel.ChosenBusinessesList).ToList();

            //Checks if the wish was for another user
            if (!(viewModel.WishInformation.WishUser is null))
            {
                viewModel.ChosenName = viewModel.WishInformation.WishUser.FullName;
            }

            //Finds the organization the wish was wishing for
            if (!(viewModel.WishInformation.WishOrganizationId is null))
            {
                viewModel.SelectedOrganizationIndex = viewModel.Organizations.IndexOf(viewModel.Organizations.SingleOrDefault(o => o.Id == viewModel.WishInformation.WishOrganizationId));
            }
예제 #30
0
        public static string GetDisplayTime(this MeetupModel e)
        {
            if (!e.StartTime.HasValue || !e.EndTime.HasValue || e.StartTime.Value.IsTba())
            {
                return(AppResources.ToBeAnnounced);
            }

            var start = e.StartTime.Value.ToEventTimeZone();

            if (e.IsAllDay)
            {
                return(AppResources.AllDay);
            }

            var startString = start.ToString("t", AppResources.Culture);
            var end         = e.EndTime.Value.ToEventTimeZone();
            var endString   = end.ToString("t", AppResources.Culture);

            return($"{startString}–{endString}");
        }