public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.LicenseList = licenseRepository.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 = licenseRepository.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
            };
            var companyId = companyRepository.Save(company);

            var userRoles = companyService.GetRolesList(rolesList);

            var user = new AppUser()
            {
                UserName  = model.UserName,
                Roles     = new HashSet <Role>(userRoles),
                CompanyId = companyId,
                Modules   = license.Modules,
                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"));
        }