private async Task InstallUsersAndRoles()
        {
            // Add Users and Roles

            //Create Role Administrators if it does not exist
            var admin = await _roleManager.FindByNameAsync(SystemRoleNames.Administrators);

            if (admin == null)
            {
                await _roleManager.CreateAsync(new IdentityRole(SystemRoleNames.Administrators));
            }

            //Create Role Users if it does not exist
            var fUser = await _roleManager.FindByNameAsync(SystemRoleNames.Users);

            if (fUser == null)
            {
                await _roleManager.CreateAsync(new IdentityRole(SystemRoleNames.Users));
            }

            //Create User=test with password=test
            if (_userManager.FindByNameAsync("test").Result == null)
            {
                var user = new ApplicationUser {
                    UserName = "******", Email = "*****@*****.**"
                };
                var userResult = await _userManager.CreateAsync(user, "test12");

                // Add User test to Role Administrators
                if (userResult.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, SystemRoleNames.Administrators);
                }
                else
                {
                    throw new Exception(userResult.Errors.First().ToString());
                }
            }

            // install default claims
            var defaultClaims = _claimProvider.GetDefaultClaims().ToList();

            foreach (var dc in defaultClaims)
            {
                var role = _roleManager.Roles.FirstOrDefault(x => x.Name == dc.RoleName);
                if (role == null)
                {
                    await _roleManager.CreateAsync(new IdentityRole(dc.RoleName));

                    role = _roleManager.Roles.FirstOrDefault(x => x.Name == dc.RoleName);
                }
                foreach (var cr in dc.ClaimRecords)
                {
                    await _roleManager.AddClaimAsync(role, new System.Security.Claims.Claim(cr.ClaimType, cr.ClaimValue));
                }
            }
        }