public async Task <IActionResult> Edit(string id) { Certification certification = await _db.Certifications.FindAsync(id); _db.Certifications.Where(x => x.Id == certification.Id).Include(x => x.Topic).Load(); if (certification == null) { return(NotFound()); } var topic = _db.Topics.Select(x => x.Name).Where(x => x != certification.Topic.Name).ToList(); var users = _db.UserCertifications .Where(e => e.CertificationId == certification.Id) .Select(e => e.UserId) .ToArray(); EditCertificationViewModel editCertificationViewModel = new EditCertificationViewModel { Id = id, Name = certification.Name, Description = certification.Description, DatetimeEnd = certification.DatetimeEnd, Users = users, TopicList = topic, Topic = certification.Topic.Name }; return(View(editCertificationViewModel)); }
public async Task <IActionResult> Edit(EditCertificationViewModel model) { model.Users = Request.Form["user"]; if (ModelState.IsValid && model.DatetimeEnd != null) { Certification certification = await _db.Certifications.FindAsync(model.Id); if (certification == null) { return(NotFound()); } certification.Name = model.Name; certification.Description = model.Description; certification.DatetimeEnd = (DateTime)model.DatetimeEnd; certification.Topic = _db.Topics.Where(x => x.Name == model.Topic).FirstOrDefault(); var usersByCertification = _db.UserCertifications .Where(e => e.CertificationId == certification.Id) .ToList(); _db.UserCertifications.RemoveRange(usersByCertification); foreach (string userId in Request.Form["user"]) { User user = await _userManager.FindByIdAsync(userId); UserCertifications userCertifications = new UserCertifications { UserId = userId, CertificationId = certification.Id, User = user, Certification = certification }; await _db.UserCertifications.AddAsync(userCertifications); } await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(model)); }