public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } Event evt = await _db.Events.FindAsync(id); if (evt == null) { return(NotFound()); } ApEventVM model = new ApEventVM() { Event = _db.Events.Include(e => e.EventSpeakers).FirstOrDefault(e => e.Id == id), EventSpeakers = _db.EventSpeakers.Include(es => es.Speaker), Speakers = _db.Speakers }; return(View(model)); }
public async Task <IActionResult> Edit(int?id, ApEventVM apEventVM, IFormFile File, DateTime dateTime, DateTime time) { if (id == null) { return(NotFound()); } Event evt = await _db.Events.FindAsync(id); if (evt == null) { return(NotFound()); } if (File != null) { if (!File.isImage()) { ModelState.AddModelError(string.Empty, "Please pick a file matching the format!"); return(View(new ApEventVM() { Event = _db.Events.Include(e => e.EventSpeakers).FirstOrDefault(e => e.Id == id), EventSpeakers = _db.EventSpeakers.Include(es => es.Speaker), Speakers = _db.Speakers })); } Extensions.DeleteImg(_env.WebRootPath, "img/event", evt.Image); evt.Image = await File.SaveImg(_env.WebRootPath, "img/event"); } List <EventSpeaker> eventSpeakers = _db.EventSpeakers.Where(es => es.EventId == evt.Id).ToList(); List <EventSpeaker> currentEventSpeakers = _db.EventSpeakers.Where(es => es.EventId == evt.Id).ToList(); List <Speaker> currentSpeakers = new List <Speaker>(); List <EventSpeaker> newEventSpeakers = new List <EventSpeaker>(); foreach (EventSpeaker es in currentEventSpeakers) { currentSpeakers.Add(_db.Speakers.FirstOrDefault(s => s.Id == es.SpeakerId)); } string test = Request.Form["states[]"]; if (test != null) { string[] strId = test.Split(","); List <int> intId = new List <int>(); foreach (string Id in strId) { intId.Add(Int32.Parse(Id)); } foreach (int Id in intId) { newEventSpeakers.Add(new EventSpeaker { EventId = evt.Id, SpeakerId = Id }); } currentEventSpeakers = newEventSpeakers; foreach (EventSpeaker es in eventSpeakers) { _db.EventSpeakers.Remove(es); } foreach (EventSpeaker es in currentEventSpeakers) { _db.EventSpeakers.Add(es); } } evt.Name = apEventVM.Event.Name; evt.Description = apEventVM.Event.Description; evt.Date = apEventVM.Event.Date; evt.Time = apEventVM.Event.Time; evt.Venue = apEventVM.Event.Venue; CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US"); string[] spt = apEventVM.Event.Time.Split("-"); if (dateTime.ToString() != "1/1/0001 12:00:00 AM") { evt.Date = dateTime.ToString("dd MMMM yyyy"); if (time.ToString() == "1/1/0001 12:00:00 AM") { evt.Time = dateTime.ToString("t", culture) + " -" + spt[1]; } } if (time.ToString() != "1/1/0001 12:00:00 AM") { if (dateTime.ToString() == "1/1/0001 12:00:00 AM") { evt.Time = spt[0] + "- " + time.ToString("t", culture); } if (dateTime.ToString() != "1/1/0001 12:00:00 AM") { evt.Time = dateTime.ToString("t", culture) + " - " + time.ToString("t", culture); } } await _db.SaveChangesAsync(); return(RedirectToAction("Index")); }