public ActionResult Create(EventEditCreationModel viewModel) { if (!ModelState.IsValid) { return(View("EditCreate", viewModel)); } else { //Get event owner and create event MeetupModel model = new MeetupModel(); int? infoID = this.UserId(); if (infoID is null) { return(RedirectToAction("Index", "Home")); } //get event ID int randomNumber; Random random = new Random(); do { randomNumber = random.Next(0, int.MaxValue); }while(model.Events.Any(e => e.Id == randomNumber)); //Create event Event newEvent = new Event(viewModel.Name, viewModel.Description, model.Users.SingleOrDefault(u => u.Id == infoID.Value), new Address(viewModel.Address.Country, viewModel.Address.City, Convert.ToInt32(viewModel.Address.CityZipCode), viewModel.Address.StreetName, viewModel.Address.StreetNumber), randomNumber); newEvent.BeginningTime = viewModel.Time.Value; //Save event model.Events.Add(newEvent); model.SaveChanges(); return(RedirectToAction("Index")); } }
public ActionResult Edit(EventEditCreationModel viewModel) { if (!ModelState.IsValid) { viewModel.Editing = true; return(View("EditCreate", viewModel)); } else { MeetupModel model = new MeetupModel(); //Check if user owns the event int?infoID = this.UserId(); if (infoID is null) { return(RedirectToAction("Index", "Home")); } Event editEvent = model.Events.SingleOrDefault(e => e.Id == viewModel.EditingId && e.HostUserId == infoID); if (editEvent is null) { return(RedirectToAction("Index")); } //Fill in the event with the view model editEvent.Name = viewModel.Name; editEvent.Description = viewModel.Description; editEvent.BeginningTime = viewModel.Time.Value; editEvent.Address.CityName = viewModel.Address.City; editEvent.Address.Country = viewModel.Address.Country; editEvent.Address.StreetName = viewModel.Address.StreetName; editEvent.Address.StreetNumber = viewModel.Address.StreetNumber; editEvent.Address.ZipCode = Convert.ToInt32(viewModel.Address.CityZipCode); model.SaveChanges(); return(RedirectToAction("Page", new { eventId = viewModel.EditingId })); } }
/// <summary> /// An action returning a page where the user can edit an event /// </summary> /// <param name="id">The id of the event to edit</param> /// <returns>If user owns the event: Returns a page to edit an event</returns> public ActionResult Edit(int id) { MeetupModel model = new MeetupModel(); //Checks if user owns the event int?infoID = this.UserId(); if (infoID is null) { return(RedirectToAction("Index", "Home")); } Event editEvent = model.Events.SingleOrDefault(e => e.Id == id && e.HostUserId == infoID); if (editEvent is null) { return(RedirectToAction("Index")); } //Fill in view model EventEditCreationModel viewModel = new EventEditCreationModel(); viewModel.Address = new AddressModel(); viewModel.Address.City = editEvent.Address.CityName; viewModel.Address.Country = editEvent.Address.Country; viewModel.Address.CityZipCode = editEvent.Address.ZipCode.ToString(); viewModel.Address.StreetName = editEvent.Address.StreetName; viewModel.Address.StreetNumber = editEvent.Address.StreetNumber; viewModel.Description = editEvent.Description; viewModel.EditingId = editEvent.Id; viewModel.Name = editEvent.Name; viewModel.Time = editEvent.BeginningTime; viewModel.Editing = true; return(View("EditCreate", viewModel)); }