using System; using System.Collections.Generic; using System.Linq; using System.Web; using EnVisage.Models.Cache; namespace EnVisage.Code.Cache { public class UsersCache : Cache { protected override string CACHE_KEY { get { return "Users"; } } protected override void SetValuesToCache() { using (EnVisageEntities context = new EnVisageEntities()) { List list = new List(); 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); } } } }