public ActionResult Register(CompanyRegister companyRegister, HttpPostedFileBase logo) { if (_userService.Get(userName: companyRegister.CreatedBy.UserName).Any()) { ModelState.AddModelError("", $"Username {companyRegister.CreatedBy.UserName} is already in use. Please try with a different username"); return(View(companyRegister)); } // need to handle the file size if (logo != null && logo.ContentLength > 0 && logo.ContentType.Contains("image")) { using (Stream inputStream = logo.InputStream) { MemoryStream memoryStream = inputStream as MemoryStream; if (memoryStream == null) { memoryStream = new MemoryStream(); inputStream.CopyTo(memoryStream); } companyRegister.Company.LogoUrl = logo.FileName; companyRegister.Company.LogoBinary = memoryStream.ToArray(); } } companyRegister.CreatedBy.UserRegisteredIp = UserSession.IpAddress; companyRegister.CreatedBy.RegisteredMacAddress = UserSession.MacAddress; companyRegister.CreatedBy.LastActivityIp = UserSession.IpAddress; companyRegister.CreatedBy.LastActiveMacAddress = UserSession.MacAddress; companyRegister.CreatedBy.EmploymentTypeId = (int)EmploymentType.FullTime; companyRegister.Company.Id = _companyService.Add(companyRegister.Company); if (companyRegister.Company.Id == (int)RegistrationStatus.DuplicateCompany) { ModelState.AddModelError("", $"Company {companyRegister.CreatedBy.UserName} is already registerted"); return(View(companyRegister)); } if (companyRegister.Company.Id < 1) { ViewBag.Message = "Sorry. Failed to Add your company"; return(View(companyRegister)); } companyRegister.CreatedBy.CompanyId = companyRegister.Company.Id; try { var result = UserManager.CreateAsync(companyRegister.CreatedBy, companyRegister.CreatedBy.Password) .Result; if (result.Succeeded) { //SignInManager.SignIn(companyRegister.CreatedBy, isPersistent: false, rememberBrowser: false); _userService.AddAddress(companyRegister.CreatedBy.RegistrationAddress); } else { foreach (var error in result.Errors) { ModelState.AddModelError("", error); } return(View(companyRegister)); } } catch { // ignored } if (companyRegister.Company.Id > 0) { _companyService.SetCreatedBy(companyId: companyRegister.Company.Id, userId: companyRegister.CreatedBy.Id); ViewBag.Message = "Your company code <strong>" + companyRegister.Company.RegisterCode + "</strong>. Your employees need this code to sign up for their account."; #pragma warning disable 4014 SignInManager.SignInAsync(companyRegister.CreatedBy, isPersistent: false, #pragma warning restore 4014 rememberBrowser: false); string emailMessage = _companyService.ComposeRegisteredEmail(companyRegister); _emailService.SendEmail(emailMessage, "Successfully Registered", new[] { companyRegister.CreatedBy.Email }); return(RedirectToAction("Index", "Home")); } return(View(companyRegister)); }