public Result <License> CreateLicense(string name) { var defaultLicense = defaultLicenseRepository.GetByName(name); if (defaultLicense == null) { return(null); } return(CreateLicense(defaultLicense)); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (!ModelState.IsValid) { model.LicenseList = defaultLicenseRepository.GetAll(); return(View(model)); } model.CompanyUrl = model.CompanyUrl.ToLower(); var isUniq = companyRepository.GetByUrlName(model.CompanyUrl) == null; if (!isUniq) { ModelState.AddModelError("", "A company with this URL already exists"); return(View(model)); } var license = companyService.CreateLicense(defaultLicenseRepository.GetByName(model.LicenseName)); List <string> rolesList = new List <string>(); if (string.IsNullOrEmpty(model.RolesLine)) { rolesList.Add(CreateUserAllowedRoles[0]); } rolesList = CreateUserAllowedRoles.ToList(); if (rolesList.Count == 0 || !rolesList.Contains("customer")) { rolesList.Add("customer"); } var company = new Company() { FullName = model.CompanyName, UrlName = model.CompanyUrl, LicenseId = license.Id }; var companyId = companyRepository.Save(company); var userRoles = companyService.GetRolesList(rolesList); var user = new AppUser() { UserName = model.UserName, Roles = new HashSet <Role>(userRoles), CompanyId = companyId, FirstName = model.FirstName, LastName = model.LastName, Password = model.Password, }; var result = await userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { ModelState.AddModelError("", "Error while creating new customer"); return(View(model)); } await signInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Home")); }