public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } Event _event = await _db.Events.FindAsync(id); if (_event == null) { return(NotFound()); } List <EventSpeaker> eSpeaker = _db.EventSpeakers.Where(p => p.EventId == _event.Id).ToList(); List <Speaker> speakers = new List <Speaker>(); foreach (var item in eSpeaker) { speakers.Add(_db.Speakers.FirstOrDefault(p => p.Id == item.SpeakerId)); } BackEndProject.Areas.Admin.ViewModels.EventEditVM eventVM = new ViewModels.EventEditVM { Image = _event.Image, Content = _event.Content, Header = _event.Header, Date = _event.Date, Interval = _event.Interval, Definition = _event.Definition, Location = _event.Location, Speakers = speakers, AllSpeakers = _db.Speakers.ToList() }; return(View(eventVM)); }
public async Task <IActionResult> EditPost(int?id, ViewModels.EventEditVM eventVM, IFormFile File) { if (id == null) { return(NotFound()); } Event _event = await _db.Events.FindAsync(id); if (_event == null) { return(NotFound()); } List <EventSpeaker> event_speaker = _db.EventSpeakers.Where(p => p.EventId == _event.Id).ToList(); List <EventSpeaker> current_EventSpeaker = _db.EventSpeakers.Where(p => p.EventId == _event.Id).ToList(); List <Speaker> current_speakers = new List <Speaker>(); foreach (var item in current_EventSpeaker) { current_speakers.Add(_db.Speakers.FirstOrDefault(p => p.Id == item.SpeakerId)); } eventVM.AllSpeakers = _db.Speakers.ToList(); eventVM.Speakers = current_speakers; eventVM.Image = _event.Image; if (!ModelState.IsValid) { return(View(eventVM)); } string keys = Request.Form["speakers"]; List <EventSpeaker> new_EventSpeaker = new List <EventSpeaker>(); if (keys != null) { string[] _keys = keys.Split(','); List <int> ids = new List <int>(); foreach (var item in _keys) { ids.Add(Int32.Parse(item)); } foreach (int item in ids) { new_EventSpeaker.Add(new EventSpeaker { EventId = _event.Id, SpeakerId = item }); } current_EventSpeaker = new_EventSpeaker; foreach (var item in event_speaker) { _db.EventSpeakers.Remove(item); } foreach (var item in current_EventSpeaker) { _db.EventSpeakers.Add(item); } } if (File != null) { if (!File.isImage()) { ModelState.AddModelError(string.Empty, "Choose photo type"); return(View(eventVM)); } Helpers.Helper.DeleteIMG(_env.WebRootPath, "img/event", _event.Image); _event.Image = await File.SaveImg(_env.WebRootPath, "img/event"); } _event.Header = eventVM.Header; _event.Date = eventVM.Date; _event.Interval = eventVM.Interval; _event.Location = eventVM.Location; _event.Definition = eventVM.Definition; _event.Content = eventVM.Content; await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }