public async Task <IActionResult> UpdateApplicant(int applicantId) { var applicant = await _context.Applicants .Include(a => a.Family) .Include(a => a.Dependents) .Include(a => a.Documents) .FirstOrDefaultAsync(a => a.ApplicantId == applicantId); var positions = await _context.Positions.Where(p => !p.IsArchived).ToListAsync(); if (applicant == null) { return(NotFound()); } UpdateApplicantForm model = new UpdateApplicantForm(); model.Applicant = applicant; model.Family = applicant.Family; model.Dependents = new List <Dependent>(applicant.Dependents); model.Documents = new List <Document>(applicant.Documents); model.Positions = new List <Position>(positions); model.ApplicantId = applicantId; return(View(model)); }
public async Task <IActionResult> UpdateApplicant(UpdateApplicantForm model) { // Create applicant from model if (ModelState.IsValid) { var position = await _context.Positions.FirstOrDefaultAsync(po => po.PositionId == model.Applicant.PositionId); var applicantToUpdate = await _context.Applicants.FirstOrDefaultAsync(a => a.ApplicantId == model.ApplicantId); var family = new Family() { FathersSuffix = model.Family.FathersSuffix, FathersFirstName = model.Family.FathersFirstName, FathersLastName = model.Family.FathersLastName, FathersMiddleName = model.Family.FathersMiddleName, MothersSuffix = model.Family.MothersSuffix, MothersFirstName = model.Family.MothersFirstName, MothersLastName = model.Family.MothersLastName, MothersMiddleName = model.Family.MothersMiddleName, SpouseSuffix = model.Family.SpouseSuffix, SpouseFirstName = model.Family.SpouseFirstName, SpouseLastName = model.Family.SpouseLastName, SpouseMiddleName = model.Family.SpouseMiddleName, NumberOfChildren = model.Family.NumberOfChildren }; if (applicantToUpdate != null) { applicantToUpdate.FirstName = model.Applicant.FirstName; applicantToUpdate.LastName = model.Applicant.LastName; applicantToUpdate.MiddleName = model.Applicant.MiddleName; applicantToUpdate.Suffix = model.Applicant.Suffix; applicantToUpdate.CivilStatus = model.Applicant.CivilStatus; applicantToUpdate.Address = model.Applicant.Address; applicantToUpdate.Age = model.Applicant.Age; applicantToUpdate.Religion = model.Applicant.Religion; applicantToUpdate.Gender = model.Applicant.Gender; applicantToUpdate.Cellphone = model.Applicant.Cellphone; applicantToUpdate.Citizenship = model.Applicant.Citizenship; applicantToUpdate.Height = model.Applicant.Height; applicantToUpdate.Weight = model.Applicant.Weight; applicantToUpdate.DateOfBirth = model.Applicant.DateOfBirth; applicantToUpdate.PlaceOfBirth = model.Applicant.PlaceOfBirth; applicantToUpdate.Telephone = model.Applicant.Telephone; applicantToUpdate.IsActive = true; applicantToUpdate.Family = family; applicantToUpdate.LastSchoolAttended = model.Applicant.LastSchoolAttended; applicantToUpdate.SchoolFrom = model.Applicant.SchoolFrom; applicantToUpdate.SchoolTo = model.Applicant.SchoolTo; applicantToUpdate.Dependents = model.Dependents; applicantToUpdate.Documents = model.Documents; applicantToUpdate.Position = position; if (model.ApplicantPhoto != null) { using (var memoryStream = new MemoryStream()) { await model.ApplicantPhoto.CopyToAsync(memoryStream); applicantToUpdate.Photo = memoryStream.ToArray(); } } applicantToUpdate.DateUpdated = DateTime.Now; applicantToUpdate.Status = Status.Active; _context.Entry(applicantToUpdate).State = EntityState.Modified; } var res = await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Success))); } UpdateApplicantForm m = new UpdateApplicantForm(); var pos = await _context.Positions.Where(p => !p.IsArchived).ToListAsync(); var dts = await _context.DocumentTypes.Where(dt => !dt.IsArchived).ToListAsync(); m.Positions = new List <Position>(pos); m.DocumentTypes = new List <DocumentType>(dts); m.ApplicantId = model.ApplicantId; return(View(m)); }