コード例 #1
0
        public async Task <ActionResult> CreateDemoUser()
        {
            //Create new demo account for user
            var newUser = new User
            {
                FirstName     = "Guest",
                LastName      = "User",
                DisplayPeriod = "Wages",
                IsDemoAccount = true,
            };

            //Increment User Name so that all demo accounts have a unique User Name
            var demoUserID = 1;

            while (_context.Users.Any(user => user.UserName == "demo-user-" + demoUserID.ToString()))
            {
                demoUserID++;
            }

            //Assign unique User Name
            newUser.UserName = "******" + demoUserID.ToString();

            //Hash standard password, could be updated to be a config var
            newUser.HashedPassword = new PasswordHasher <User>().HashPassword(newUser, "Welcome");

            //Save Demo User
            _context.Users.Add(newUser);
            await _context.SaveChangesAsync();

            //Generate demo data for demo user
            DemoDataManager.CreateDemoData(newUser.ID);

            //Generate and return JWT Token
            return(Ok(new { Token = CreateJWT(newUser), UserInfo = newUser }));
        }