Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }