protected List <MenuControlAttribute> GetAdminContrller() { var cacheMenu = CacheExtends.GetDataFromCache <List <MenuControlAttribute> >(CacheExtends.DefaultAdminController); if (cacheMenu != null) { return(cacheMenu); } else { var cusMenus = new List <MenuControlAttribute>(); var assembly = Assembly.GetAssembly(typeof(AdminController)).GetTypes() .Where(o => o.BaseType.FullName == typeof(AdminController).FullName) .ToList(); int count = assembly != null ? assembly.Count : 0; for (int i = 0; i < count; i++) { var item = assembly[i]; var attribute = item.GetCustomAttribute <MenuControlAttribute>(); if (attribute == null) { continue; } var getmetho = item.GetMethods(); var method = getmetho .Where(o => o.Module.Name == typeof(AdminController).Module.Name) .Select(o => o.Name).ToList(); if (method != null) { foreach (var m in method) { attribute.ActionName.Add(m.ToLower()); } } attribute.Color = string.IsNullOrEmpty(attribute.Color) ? new GetColor().RandomColor() : attribute.Color; cusMenus.Add(attribute); } CacheExtends.SetObjectFromCache(CacheExtends.DefaultAdminController, 360 * 24 * 60, cusMenus); return(cusMenus); } }
public string RandomColor() { var _color = new List <string>(); var cacle = CacheExtends.GetDataFromCache <List <string> >("colorGet"); if (_color.Count == 0) { _color = cacle != null && cacle.Count > 0? cacle : new List <string>() { "cyan", "red", "emerald", "indigo", "violet", "teal" }; } Random random = new Random(); int id = random.Next(0, _color.Count); var colorReturn = _color[id].ToString(); //_color.Remove(colorReturn); CacheExtends.SetObjectFromCache("colorGet", 240, _color); return(colorReturn); }
private static ClaimsPrincipal GetCurrentUser(this HttpContext context, IConfiguration configuration, ref CPUserEntity user) { string token = context.GetValue(Cookies.DefaultLogin, false); if (string.IsNullOrEmpty(token)) { return(null); } else { // neeus co cache var cache = CacheExtends.GetDataFromCache <ClaimsPrincipal>(token); if (cache != null) { return(cache); } // ko co cache var logs = new CPLoginLogService(configuration); string email = logs.GetEmailFromDb(token); if (string.IsNullOrEmpty(email)) { return(null); } else { var account = new CPUserService(configuration); user = account.GetItemByEmail(email); if (user == null) { return(null); } else { var role = new CPRoleService(configuration); var irole = role.GetByID(user.RoleID); if (role == null) { return(null); } var claims = new List <Claim> { new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.Name, user.Name), new Claim(ClaimTypes.Role, irole.Code), new Claim("RoleID", irole.ID.ToString()) }; var claimsIdentity = new ClaimsIdentity(claims, Cookies.DefaultLogin); var authenProperties = new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddMinutes(Cookies.ExpiresLogin) }; ClaimsPrincipal claim = new ClaimsPrincipal(); claim.AddIdentity(claimsIdentity); CacheExtends.SetObjectFromCache(token, Cookies.ExpiresLogin, claim); return(claim); } } } }