public async Task Write(IdentityUser user, AppUser.History.Types typeid, object obj = null)
        {
            using (var scope = ssf.CreateScope())
                using (var ctx = scope.ServiceProvider.GetService <ApplicationDbContext>())
                {
                    await Write(ctx, user, typeid, obj);

                    await ctx.SaveChangesAsync();
                }
        }
        public async Task <bool> AddHistory(string userID, string userName, AppUser.History.Types typeid, string detail = default)
        {
            await Histories.AddAsync(new AppUser.History
            {
                UserID   = userID,
                UserName = userName,
                Time     = DateTime.Now,
                TypeID   = typeid,
                Detail   = detail
            });

            return(true);
        }
        public async Task Write(string username, AppUser.History.Types typeid, object obj = null)
        {
            using (var scope = ssf.CreateScope())
                using (var ctx = scope.ServiceProvider.GetService <ApplicationDbContext>())
                {
                    var user = await ctx.Users.Where(u => u.UserName == username).FirstOrDefaultAsync();

                    if (user == null)
                    {
                        return;
                    }
                    await Write(ctx, user, typeid, obj);

                    await ctx.SaveChangesAsync();
                }
        }
        public async Task Write(AppUser.History.Types typeid, object obj = null)
        {
            using (var scope = ssf.CreateScope())
            {
                var asp  = scope.ServiceProvider.GetService <AuthenticationStateProvider>();
                var user = await asp.CurrentUser();

                if (user != null)
                {
                    using (var ctx = scope.ServiceProvider.GetService <ApplicationDbContext>())
                    {
                        await Write(ctx, user, typeid, obj);

                        await ctx.SaveChangesAsync();
                    }
                }
            }
        }
 public async Task Write(ApplicationDbContext ctx, string userid, string username, AppUser.History.Types typeid, object obj = null)
 {
     await ctx.AddHistory(userid, username, typeid, obj != null?JsonConvert.SerializeObject(obj, Formatting.None) : null);
 }
 public async Task Write(ApplicationDbContext ctx, IdentityUser user, AppUser.History.Types typeid, object obj = null)
 {
     await Write(ctx, user.Id, user.UserName, typeid, obj);
 }
 public async Task Write(ApplicationDbContext ctx, ClaimsPrincipal user, AppUser.History.Types typeid, object obj = null)
 {
     await Write(ctx, user.GetID(), user.Identity.Name, typeid, obj);
 }