diff --git a/server/AyaNova/biz/DataListSavedFilterBiz.cs b/server/AyaNova/biz/DataListSavedFilterBiz.cs index 960099aa..a1970f1f 100644 --- a/server/AyaNova/biz/DataListSavedFilterBiz.cs +++ b/server/AyaNova/biz/DataListSavedFilterBiz.cs @@ -136,6 +136,8 @@ namespace AyaNova.Biz List items = new List(); if (!string.IsNullOrWhiteSpace(listKey)) { + //First ensure there is a default + items = await ct.DataListSavedFilter .AsNoTracking() .Where(z => z.ListKey == listKey && (z.Public == true || z.UserId == UserId)) @@ -151,6 +153,30 @@ namespace AyaNova.Biz } + //////////////////////////////////////////////////////////////////////////////////////////////// + //CREATE Default if it doesn't exist already + internal async Task EnsureDefaultAsync(string listKey) + { + if (!await ct.DataListSavedFilter.AnyAsync(z => z.UserId == UserId && z.ListKey == listKey && z.DefaultFilter == true)) + { + if (!DataListFactory.ListKeyIsValid(listKey)) + { + throw new System.ArgumentOutOfRangeException($"ListKey '{listKey}' is not a valid DataListKey"); + } + + var dataList = DataListFactory.GetAyaDataList(listKey); + + DataListSavedFilter d = new DataListSavedFilter(); + d.ListKey = listKey; + d.Name = "-"; + d.DefaultFilter = true; + d.Public = false; + d.UserId = UserId; + d.Filter = "{}"; + await ct.DataListSavedFilter.AddAsync(d); + await ct.SaveChangesAsync(); + } + } ////////////////////////////////////////////////////////////////////////////////////////////////