Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var history = _db.Realm.All<HistoryItem>().Where(a => a.Quest != null).GroupBy(a=>a.Quest);
- var tmp = _db.Realm.All<Quest>().Where(a =>
- a.StartDate < startDayIsLessThan &&
- a.EndDate > EndDateIsHigherThan);
- var histCount = _db.Realm.All<HistoryItem>()
- .GroupBy(h => h.Quest)
- .Select(gr => new {Q = gr.Key, Count = gr.Count()});
- var result = _db.Realm.All<Quest>()
- // сокращаем коллекцию до join
- .Where(q => q.StartDate > start && q.EndDate < end) // todo: перепроверить условие
- // join с группированной коллекцией элементов истории
- .Join(histCount,
- quest => quest.Id,
- hCount => hCount.Q,
- (quest, hCount) => new {Quest = quest, HCount = hCount.Count})
- // фильтрация по условиям кол-ва элементов
- .Where(it => it.HCount < it.Quest.MaxRepeats)
- // выборка результата
- .Select(it => it.Quest)
- .ToList();
Add Comment
Please, Sign In to add comment