public AccountController() { appDbContext = new ApplicationDbContext(); db = new JobPostingDBEntities1(); }
public async Task <ActionResult> Register(RegisterViewModelCandidate model) { if (ModelState.IsValid) { // Todo: Create a folder for each Candidate var folderPath = Server.MapPath("~/Data/Candidate/" + model.Email); // Chech if Folder is Exists byte[] imageData = null; if (!Directory.Exists(folderPath)) { // Create Folder Directory.CreateDirectory(Server.MapPath("~/Data/Candidate/" + model.Email)); string fullPathInServer = "~/Data/Candidate/" + model.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); } } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName }; if (model.PhotoFileName != null) { user.UserPhoto = imageData; } var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var res = await UserManager.AddToRoleAsync(user.Id, "candidate"); using (JobPostingDBEntities1 db = new JobPostingDBEntities1()) { var newCandidate = new Candidate { CandidateSecondID = user.Id, FirstName = model.FirstName, LastName = model.LastName, Address = model.Adresse, Bio = model.Bio, DateOfBirth = model.DateOfBirth, Email = model.Email, PhoneNumber = model.PhoneNumber, Password = model.Password, Photo = model.Photo, Cv = model.CV, CoverLetter = model.CoverLetter }; //db.Entry<Candidate>().State = System.Data.Entity.EntityState.Added; db.Candidates.Add(newCandidate); db.SaveChanges(); } await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // Pour plus d'informations sur l'activation de la confirmation de compte et de la réinitialisation de mot de passe, visitez https://go.microsoft.com/fwlink/?LinkID=320771 // Envoyer un message électronique avec ce lien // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirmez votre compte", "Confirmez votre compte en cliquant <a href=\"" + callbackUrl + "\">ici</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // Si nous sommes arrivés là, un échec s’est produit. Réafficher le formulaire return(View(model)); }