48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using EnVisage.Models.Cache;
|
|
|
|
namespace EnVisage.Code.Cache
|
|
{
|
|
public class UsersCache : Cache<User>
|
|
{
|
|
protected override string CACHE_KEY
|
|
{
|
|
get
|
|
{
|
|
return "Users";
|
|
}
|
|
}
|
|
|
|
protected override void SetValuesToCache()
|
|
{
|
|
using (EnVisageEntities context = new EnVisageEntities())
|
|
{
|
|
List<User> list = new List<User>();
|
|
var users = context.AspNetUsers.ToList();
|
|
foreach(var user in users)
|
|
{
|
|
var userRoles = user.AspNetRoles.Select(x => new Guid(x.Id)).ToList();
|
|
list.Add(new User()
|
|
{
|
|
Id = new Guid(user.Id),
|
|
PreferredResourceAllocation = user.PreferredResourceAllocation,
|
|
PreferredTotalsDisplaying = user.PreferredTotalsDisplaying,
|
|
ShowAutomaticViews = user.ShowAutomaticViews,
|
|
Roles = userRoles,
|
|
LoginDate = user.LoginDate,
|
|
LastLoginDate = user.LastLoginDate,
|
|
FirstName = user.FirstName,
|
|
LastName = user.LastName,
|
|
Email = user.Email,
|
|
UserName = user.UserName
|
|
});
|
|
}
|
|
|
|
CacheManager.Instance.AddToCache(CACHE_KEY, list);
|
|
}
|
|
}
|
|
}
|
|
} |