private Employer MapRegisterViewModelToEmployer(AdminRegisterEmployerViewModel model) { var employer = new Employer { Adress = model.Adress, City = model.City, CompanyName = model.CompanyName, FirstName = model.FirstName, LastName = model.LastName, Prefix = model.Prefix, PostalCode = model.PostalCode, TelephoneNumber = model.TelephoneNumber }; return(employer); }
public async Task <ActionResult> RegisterEmployer(AdminRegisterEmployerViewModel model) { var password = Membership.GeneratePassword(12, 4); if (ModelState.IsValid) { var employer = MapRegisterViewModelToEmployer(model); var identityUser = new IdentityUser { UserName = model.LoginName, Email = model.EmailAdress }; var usr = await userManager.FindByEmailAsync(model.EmailAdress); if (usr != null) { ModelState.AddModelError("", EMAILADDRESS_IS_IN_USE_ERROR); return(View(model)); } usr = await userManager.FindByNameAsync(model.LoginName); if (usr != null) { ModelState.AddModelError("", USERNAME_IS_IN_USE_ERROR); return(View(model)); } var result = await userManager.CreateAsync(identityUser, password); if (result.Succeeded) { await userManager.AddToRoleAsync(identityUser.Id, "Employer"); employer.EmployerId = identityUser.Id; await employerManager.Create(employer); var user = await adminManager.GetBaseUserByName(User.Identity.Name); var alert = new Alert(); { alert.AlertId = Guid.NewGuid(); alert.EmployerId = employer.EmployerId; alert.AlertType = AlertType.Employer_Create; alert.AlertIsDeleted = false; alert.AlertCreateTS = DateTime.Now; alert.AlertUpdateTS = DateTime.Now; alert.UserId = user.UserId; }; await alertManager.CreateAsync(alert); var messageInfo = new AdminRegEmployerMessageBuilder(model.LoginName, password); var mailingResult = await mailingService.SendMailAsync(messageInfo.Body, messageInfo.Subject, model.EmailAdress); return(RedirectToAction("Index", "Admin")); } } return(View(model)); }