public async Task <ActionResult> Register(BaseCompanyInfoViewModel vm) { ViewBag.Role = vm.Role; bool isValid = true; int cvr = 0; if (string.IsNullOrEmpty(vm.Name)) { ModelState.AddModelError("", "Name is required"); isValid = false; } if (string.IsNullOrEmpty(vm.Email)) { ModelState.AddModelError("", "Email is required"); isValid = false; } if (vm.Role == Constants.CompanyRole && (string.IsNullOrEmpty(vm.Cvr) || !int.TryParse(vm.Cvr, out cvr))) { ModelState.AddModelError("", "CVR is not valid"); isValid = false; } //var userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); //var emailInUse = await _companyRepository.EmailInUseByOtherCompany(vm.Email, vm.CompanyId); //if (!string.IsNullOrEmpty(vm.Email) && (userManager.FindByName(vm.Email) != null || emailInUse)) //{ // ModelState.AddModelError("", "This email is already in use"); // isValid = false; //} if (isValid) { var registrationRepository = new RegistrationRepository(); if (vm.Role == Constants.CompanyRole) { registrationRepository.AddCompanyRegistration(vm.Token, cvr, vm.Name, vm.Email); } else { registrationRepository.AddPersonRegistration(vm.Name, vm.Email); } return(RedirectToAction("Thanks", "Home")); //Company company; //if (vm.CompanyId <= 0) //{ // company = new Company // { // Email = vm.Email, // CVR = cvr, // Name = vm.Name // }; // _companyRepository.Add(company); // return RedirectToAction("Thanks", "Home"); //} //company = _companyRepository.GetThreeCompanies(vm.CompanyId); //var user = new ApplicationUser { UserName = vm.Email, Email = vm.Email }; //var password = Guid.NewGuid().ToString().Substring(0, 8) + "!1jK"; //var result = await userManager.CreateAsync(user, password); //if (result.Succeeded) //{ // await userManager.AddToRoleAsync(user.Id, Constants.CompanyRole); // company.Name = vm.Name; // company.Email = vm.Email; // company.CVR = cvr; // await _companyRepository.UpdateCompany(company); // user.CompanyId = company.Id; // await userManager.UpdateAsync(user); // var subject = "Company registered"; // var body = "Your company is registered. Your account password is " + password; // var emailService = new EmailService( // company.Email, // subject, // company.Name, // body, // true, // false // ); // emailService.Send(); // await userManager.AddClaimAsync(user.Id, new Claim(Common.Constants.UserIdClaim, user.Id)); // await userManager.AddClaimAsync(user.Id, // new Claim(Common.Constants.CompanyIdClaim, user.CompanyId.ToString())); // await HttpContext.GetOwinContext().Get<ApplicationSignInManager>() // .SignInAsync(user, isPersistent: false, rememberBrowser: false); // return RedirectToAction("BasicData", "Home", // new // { // id = user.CompanyId, // message = // "Thank you for registre your company, please take some time to fill out your company profile." // }); //} //foreach (var error in result.Errors) //{ // ModelState.AddModelError("", error); //} } return(View()); }