public async Task <ActionResult> CompleteRegist(string userId, string code, string Nt) { double timeInt = Convert.ToDouble(Nt); if (timeInt + 3 * 3600 <= TimeHelper.ConvertDateTimeInt(DateTime.UtcNow) || timeInt > TimeHelper.ConvertDateTimeInt(DateTime.UtcNow) || timeInt == 0) { return(RedirectToAction("Error404", "Account", new { ErrorMessage = "Link Has Expired" })); } EnsureLoggedOut(); //EnsureLoggedOut(); Dictionary <string, string> StaList = EnumHelper.GetEnumItemDesc(typeof(States)); ViewBag.StatesList = new SelectList(StaList, "key", "value"); //Dictionary<string, object> StaList = EnumHelper.EnumListDic<States>("", ""); //ViewBag.StatesList = new SelectList(StaList, "value", "key"); Dictionary <string, object> RoundTo = EnumHelper.EnumListDic <RoundTo>("", ""); ViewBag.RoundTo = new SelectList(RoundTo, "value", "key"); ViewBag.TimeZone = SelectHelper.TimeZoneToSelect(db); if (userId == null || code == null) { return(RedirectToLocal()); } if (await UserManager.IsEmailConfirmedAsync(userId)) { return(RedirectToLocal()); } AppUser user = await UserManager.FindByIdAsync(userId); CompleteRegistModel mode = new CompleteRegistModel() { code = code, Email = user.Company.Email, CompanyName = user.Company.CompanyName }; return(View(mode)); }
public async Task <ActionResult> CompleteRegist(CompleteRegistModel viewModel) { // Ensure we have a valid viewModel to work with if (!ModelState.IsValid) { return(View(viewModel)); } var user = await UserManager.FindByEmailAsync(viewModel.Email); if (user != null) { //user.EmailConfirmed = true; user.PayRollUser = viewModel.FName + " " + viewModel.LName; user.UserName = viewModel.Email; user.Company.ContactName = viewModel.FName + " " + viewModel.LName; user.LastLoginDate = DateTime.UtcNow; //user.PasswordHash= UserManager.PasswordHasher.HashPassword(viewModel.Password); //var result2 = await UserManager.ConfirmEmailAsync(user.Id, viewModel.code); IdentityResult result = await UserManager.ConfirmEmailAsync(user.Id, viewModel.code); if (result.Succeeded) { //await UserManager.ResetPasswordAsync(user.Id, viewModel.code, viewModel.Password); var resultPW = await UserManager.ChangePasswordAsync(user.Id, "Pay123456", viewModel.Password); if (!resultPW.Succeeded) { AddErrors(resultPW); return(View(viewModel)); } var resultUp = await UserManager.UpdateAsync(user); if (resultUp.Succeeded) { Customer cus = new Customer() { Id = Guid.NewGuid(), CustomerName = "Default Customer", AddDate = DateTime.Now, CompanyId = user.CompanyId }; db.Customer.Add(cus); Job job = new Job() { JobName = "Default Job", status = "0", CompanyId = user.CompanyId, Customer = new List <Customer>() }; db.Job.Add(job); job.Customer.Add(cus); db.SaveChanges(); Employee em = new Employee() { EmployeeId = Guid.NewGuid(), Email = user.Email, Address1 = user.Company.Address1, Address2 = user.Company.Address2, State = user.Company.State, City = user.Company.City, DefaultJob = job.JobId, TimeZone = user.TimeZone, ZipCode = user.Company.Zip, Phone = viewModel.Telephone, FName = viewModel.FName, LName = viewModel.LName, SSN = viewModel.SSN, UserRole = "Admin", F99 = 0, F106 = "Single", F114 = 1, F115 = 1, F116 = 1, F117 = 1, F118 = 1, F119 = 1, F124 = 0, F103 = DateTime.UtcNow, F104 = DateTime.UtcNow, F105 = DateTime.UtcNow, CompanyId = user.CompanyId, AppUserId = user.Id, Job = new List <Job>() }; db.Employee.Add(em); em.Job.Add(job); Company c = db.Company.Where(t => t.CompanyId == user.CompanyId).SingleOrDefault(); if (c != null) { c.ContactName = user.PayRollUser; c.Status = "0"; } db.Entry <Company>(c).State = System.Data.Entity.EntityState.Modified; T100 t100 = new T100 { Id = Guid.NewGuid(), BankName = "My Bank", BankInfo1 = "Bank Road", TransitCode = "67-76890", BankRouteNo = "123456789", BankAccountNo = "0123456789", StartCheckNo = 100, CurrentCheckNo = 1000, CheckWidth = 0, CheckHeight = 0, OffsetLeft = 0, OffsetRight = 0, OffsetUp = 0, OffsetDown = 0, Logo = "", Signature = "", Company1 = c.CompanyName, Company2 = c.Address1, Company3 = c.City + ", " + c.State + " " + c.Zip, Company4 = "(111) 111-1111", BlankBankStock = false, ExField1 = "Bottom", ExField2 = false, ExField3 = "", nodisplaymicr = false, CompanyId = c.CompanyId }; db.T100.Add(t100); db.SaveChanges(); //await SignInAsync(user, true); await ApplicationSignInManager.PasswordSignInAsync(user.UserName, viewModel.Password, true, shouldLockout : false); RollPayInitialize(db, user.CompanyId); SignCookieAsync(user); return(RedirectToLocal()); } else { AddErrors(resultUp); return(View(viewModel)); } } else { AddErrors(result); return(View(viewModel)); } } return(View(viewModel)); }