EnVisageOnline/Main-RMO/Source/EnVisage/Code/Cache/UsersCache.cs

41 lines
1004 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,
PreferredTotalsDisplaying = user.PreferredTotalsDisplaying,
Roles = userRoles,
});
}
CacheManager.Instance.AddToCache(CACHE_KEY, list);
}
}
}
}