public IEnumerable<Category> GetAll()
var result = HttpRuntime.Cache[cacheKey] as string;
if (String.IsNullOrWhiteSpace(result)) {
if (!TempFileHandler.TempFileExists(tempFilename)) {
using (IRISEntityProvider db = new IRISEntityProvider()) {
List<Category> tmpResult = db.Set<Category>().Include("Keywords").Include("Keywords.Settings").Include("Keywords.Settings.Setting").Include("Keywords.ChildKeywords").OrderBy(item => item.SortOrder).ThenBy(item => item.Name).AsNoTracking().ToList();
db.Configuration.LazyLoadingEnabled = false;
result = SerializationHandler.JsonSerialize<List<Category>>(tmpResult, 3);
TempFileHandler.SaveToTempFile(tempFilename, result);
result = TempFileHandler.ReadFromTempFile(tempFilename);
HttpRuntime.Cache.Insert(cacheKey, result, null, DateTime.UtcNow.AddHours(24), TimeSpan.Zero);
return SerializationHandler.JsonDeserialize<List<Category>>(result);