EnVisageOnline/Beta/Source/EnVisage/Code/Cache/UsersCache.cs

35 lines
842 B
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, Roles = userRoles, PagePreferences = user.PagePreferences });
}
CacheManager.Instance.AddToCache(CACHE_KEY, list);
}
}
}
}