public async Task Initialize()
        {
            string adminRoleName = "Administrator";

            //TODO remove the EnsureDeleted, it's only for testing
            _context.Database.EnsureDeleted();
            _context.Database.EnsureCreated();

            if (_context.Roles.Any(itm => itm.Name == adminRoleName))
            {
                return;
            }

            await _roleManager.CreateAsync(new IdentityRole(adminRoleName));

            var adminRole = await _roleManager.FindByNameAsync(adminRoleName);

            string superClaim = String.Join(GeneralConstants.DelimeterDot, ClaimConstants.PolicyPrefix, ClaimConstants.ClaimValue_AllowAll);

            _claimService.AddOrUpdateClaim(new ClaimDTO
            {
                Type  = ClaimConstants.PermissionClaimType,
                Value = superClaim
            }, "Startup", "0.0.0.0");

            await _roleManager.AddClaimAsync(adminRole, new Claim(ClaimConstants.PermissionClaimType, superClaim));

            string user     = "******";
            string password = "******";
            await _userManager.CreateAsync(new ApplicationUser { UserName = user, Email = user, Nickname = "Administrator", EmailConfirmed = true }, password);

            await _userManager.AddToRoleAsync(_userManager.FindByNameAsync(user).GetAwaiter().GetResult(), adminRoleName);
        }