public async Task SaveAsync(Models.AdminMenu tree) { if (tree.IsReadonly) { throw new ArgumentException("The object is read-only"); } var adminMenuList = await LoadAdminMenuListAsync(); var preexisting = adminMenuList.AdminMenu.FirstOrDefault(x => String.Equals(x.Id, tree.Id, StringComparison.OrdinalIgnoreCase)); // it's new? add it if (preexisting == null) { adminMenuList.AdminMenu.Add(tree); } else // not new: replace it { var index = adminMenuList.AdminMenu.IndexOf(preexisting); adminMenuList.AdminMenu[index] = tree; } _session.Save(adminMenuList); _signal.DeferredSignalToken(AdminMenuCacheKey); }
public async Task SaveAsync(Models.AdminMenu tree) { var adminMenuList = await GetAdminMenuList(); var session = GetSession(); var preexisting = adminMenuList.AdminMenu.Where(x => x.Id == tree.Id).FirstOrDefault(); // it's new? add it if (preexisting == null) { adminMenuList.AdminMenu.Add(tree); } else // not new: replace it { var index = adminMenuList.AdminMenu.IndexOf(preexisting); adminMenuList.AdminMenu[index] = tree; } session.Save(adminMenuList); _memoryCache.Set(AdminMenuCacheKey, adminMenuList); _signal.SignalToken(AdminMenuCacheKey); }
public async Task <int> DeleteAsync(Models.AdminMenu tree) { var adminMenuList = await GetAdminMenuList(); var session = GetSession(); var count = adminMenuList.AdminMenu.RemoveAll(x => String.Equals(x.Id, tree.Id)); session.Save(adminMenuList); _memoryCache.Set(AdminMenuCacheKey, adminMenuList); _signal.SignalToken(AdminMenuCacheKey); return(count); }
public async Task <int> DeleteAsync(Models.AdminMenu tree) { if (tree.IsReadonly) { throw new ArgumentException("The object is read-only"); } var adminMenuList = await LoadAdminMenuListAsync(); var count = adminMenuList.AdminMenu.RemoveAll(x => String.Equals(x.Id, tree.Id, StringComparison.OrdinalIgnoreCase)); _session.Save(adminMenuList); _signal.DeferredSignalToken(AdminMenuCacheKey); return(count); }