public virtual async Task <AbstractUser> GetUserAsync(ClaimsPrincipal principal)
        {
            var claim = principal.Claims.SingleOrDefault(c => c.Type == ClaimTypes.PrimarySid);

            if (claim == null || !int.TryParse(claim.Value, out int userId))
            {
                return(null);
            }

            string key = AbstractUser.GetCacheKey(userId);

            ScreamBackend.DB.Tables.User model = new ScreamBackend.DB.Tables.User();

            return(await GetUserFromIdAsync(userId));
        }
 public Task SignOutAsync(AbstractUser user)
 {
     return(user.SignOutAsync());
 }