public ActionResult Edit(int id) { var participant = _participantRepository.GetById(id); if (participant == null) { return(this.RedirectToAction <RetreatController>(c => c.Index(null))); } var participantViewModel = new EditParticipantViewModel { Id = participant.Id, FirstName = participant.FirstName, LastName = participant.LastName, DateReceived = participant.DateReceived, Notes = participant.Notes, PhysicalStatus = participant.PhysicalStatus }; return(View(participantViewModel)); }
public ActionResult Edit(EditParticipantViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } var participant = _participantRepository.GetById(viewModel.Id); if (participant == null) { return(View(viewModel)); } participant.FirstName = viewModel.FirstName; participant.LastName = viewModel.LastName; participant.DateReceived = viewModel.DateReceived; participant.Notes = viewModel.Notes; participant.PhysicalStatus = viewModel.PhysicalStatus; _participantRepository.Save(participant); return(this.RedirectToAction <RetreatController>(c => c.Index(null))); }
public async Task <IActionResult> Edit(string id, EditParticipantViewModel participant, IFormCollection formCollection) { if (id != participant.Id) { return(NotFound()); } if (ModelState.IsValid) { try { var participantToUpdate = await _context.Participants.FindAsync(id); participantToUpdate.LastUpdateTime = DateTime.Now; participantToUpdate.CompetitionSubjectId = participant.CompetitionSubjectId; participantToUpdate.Description = participant.Description; participantToUpdate.Subject = participant.Subject; if (formCollection.Files != null) { foreach (var file in formCollection.Files) { var fileContent = ContentDispositionHeaderValue.Parse(file.ContentDisposition); var userId = HttpContext.User.Identity.Name; // Some browsers send file names with full path. // We are only interested in the file name. var format = Path.GetExtension(fileContent.FileName.ToString().Trim('"')); var filename = Guid.NewGuid().ToString() + format; var physicalPath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\uploads\" + userId, filename); var path = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\uploads\" + userId); bool exists = Directory.Exists(path); if (!exists) { Directory.CreateDirectory(path); } // The files are not actually saved in this demo using (var fileStream = new FileStream(physicalPath, FileMode.Create)) { await file.CopyToAsync(fileStream); } participantToUpdate.AttachedFile = filename; } } _context.Update(participantToUpdate); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ParticipantExists(participant.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(participant)); }