예제 #1
0
        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));
        }
예제 #2
0
        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));
        }