Example #1
0
        public ActionResult Register(string token)
        {
            if (User.Identity.IsAuthenticated && string.IsNullOrEmpty(token))
            {
                return(Redirect("Home/Index"));
            }
            if (string.IsNullOrEmpty(token))
            {
                return(View());
            }

            if (!Guid.TryParse(token, out var guid))
            {
                return(View());
            }

            var registrationRepository = new RegistrationRepository();
            var companyId = registrationRepository.GetCompanyByToken(guid);

            if (companyId == null)
            {
                return(View());
            }

            var company = _companyRepository.GetCompany(companyId.Value);
            var model   = new BaseCompanyInfoViewModel
            {
                CompanyId = company.Id,
                Name      = company.Name,
                Cvr       = company.CVR.ToString(),
                Email     = company.Email,
                Token     = guid
            };

            return(View(model));
        }
Example #2
0
        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());
        }