// GET: Candidate/Edit/5 public ActionResult Edit(string idUser) { // Get the candidateID with the hash code idUser Candidate editingCandidate = this.db.Candidates.Where(c => c.CandidateSecondID == idUser).FirstOrDefault(); CandidateEditProfileViewModel editVM = new CandidateEditProfileViewModel { CandidateSecondID = editingCandidate.CandidateSecondID, FirstName = editingCandidate.FirstName, LastName = editingCandidate.LastName, DateOfBirth = editingCandidate.DateOfBirth, Address = editingCandidate.Address, PhoneNumber = editingCandidate.PhoneNumber, Bio = editingCandidate.Bio, }; ViewBag.UniqueID = idUser; return(View(editVM)); }
public ActionResult Edit(CandidateEditProfileViewModel model) // Ealash CandidateSecondID tayji null men view? { if (ModelState.IsValid) { // Get the email of current candidate string userHashID = User.Identity.GetUserId(); var currentCandidate = db.Candidates.Where(c => c.CandidateSecondID == userHashID).FirstOrDefault(); // Update logic goes here var folderPath = Server.MapPath("~/Data/Candidate/" + currentCandidate.Email); byte[] imageData = null; string fullPathInServer = "~/Data/Candidate/" + currentCandidate.Email + "/"; // Save Cv In Server Side if (model.CvFileName != null) { string cvFileName = Path.GetFileNameWithoutExtension(model.CvFileName.FileName); string cvFileExtension = Path.GetExtension(model.CvFileName.FileName); string _cvFileName = cvFileName + cvFileExtension; model.Cv = fullPathInServer + _cvFileName; _cvFileName = Path.Combine(Server.MapPath(fullPathInServer), _cvFileName); model.CvFileName.SaveAs(_cvFileName); } // Save Photo In Server Side if (model.PhotoFileName != null) { string photoFileName = Path.GetFileNameWithoutExtension(model.PhotoFileName.FileName); string photoFileExtension = Path.GetExtension(model.PhotoFileName.FileName); string _photoFileName = photoFileName + photoFileExtension; model.Photo = fullPathInServer + _photoFileName; _photoFileName = Path.Combine(Server.MapPath(fullPathInServer), _photoFileName); model.PhotoFileName.SaveAs(_photoFileName); // Todo: convert the user uploaded Photo as Byte Array before save to DB/ ApplicationDbContext => AspNetUserTable if (Request.Files.Count > 0) { HttpPostedFileBase fileBase = Request.Files["PhotoFileName"]; using (var binary = new BinaryReader(fileBase.InputStream)) { imageData = binary.ReadBytes(fileBase.ContentLength); } } } // Save Cover Letter In Server Side if (model.CoverLetterFileName != null) { string coverLetterFileName = Path.GetFileNameWithoutExtension(model.CoverLetterFileName.FileName); string coverLetterFileExtension = Path.GetExtension(model.CoverLetterFileName.FileName); string _coverLetterFileName = coverLetterFileName + coverLetterFileExtension; model.CoverLetter = fullPathInServer + _coverLetterFileName; _coverLetterFileName = Path.Combine(Server.MapPath(fullPathInServer), _coverLetterFileName); model.CoverLetterFileName.SaveAs(_coverLetterFileName); } // Updating candidate info in the identity DbContext var updatedUser = appDb.Users.Where(u => u.Id.Equals(userHashID)).FirstOrDefault(); updatedUser.FirstName = model.FirstName; updatedUser.LastName = model.LastName; updatedUser.UserPhoto = imageData; appDb.SaveChanges(); if (model.PhotoFileName != null) { updatedUser.UserPhoto = imageData; } // Updating candidate info in our DB Candidate updatedCandidate = db.Candidates.Where(c => c.CandidateSecondID.Equals(userHashID)).FirstOrDefault(); updatedCandidate.FirstName = model.FirstName; updatedCandidate.LastName = model.LastName; updatedCandidate.Address = model.Address; updatedCandidate.Bio = model.Bio; updatedCandidate.DateOfBirth = model.DateOfBirth; updatedCandidate.PhoneNumber = model.PhoneNumber; updatedCandidate.Photo = model.Photo; updatedCandidate.Cv = model.Cv; updatedCandidate.CoverLetter = model.CoverLetter; db.SaveChanges(); return(RedirectToAction("Index", "Candidate", new { idUser = User.Identity.GetUserId() })); } return(View()); }