public async Task <UserAction> LogAsync(UserOperation operation, string username, string description, bool success = false, ActionRank rank = ActionRank.Debug)
        {
            var context = _httpContextAccessor.HttpContext;
            var ua      = context.ClientInfo <UserAction>();

            ua.Date        = DateTime.Now;
            ua.Operation   = operation;
            ua.UserName    = username;
            ua.Success     = success;
            ua.Description = description;
            ua.Rank        = rank;
            await _context.UserActions.AddAsync(ua);

            await _context.SaveChangesAsync();

            return(ua);
        }
 public UserAction Log(UserOperation operation, string username, string description, bool success = false, ActionRank rank = ActionRank.Debug) => LogAsync(operation, username, description, success, rank).Result;
 /// <summary>
 ///
 /// </summary>
 /// <param name="rank"></param>
 /// <param name="color"></param>
 /// <returns></returns>
 public static UserActionDictionaryItem Build(this ActionRank rank, Color color) => Build(rank.ToString(), (int)rank, color);