public NewsMap MakeNewsMap() { var allNews = newsStore.ReceiveAllData(); var map = new NewsMap { channelIds = new int[0], records = new NewsMapRecord[0] }; map.channelIds = allNews.Keys.ToArray(); // посчитать количество записей на дату var records = new Dictionary <DateTime, NewsMapRecord>(); foreach (var chanNews in allNews.Where(n => n.Value != null)) { var list = chanNews.Value; foreach (var news in list) { var date = news.Time.Date; if (!records.ContainsKey(date)) { records.Add(date, new NewsMapRecord(date, 1)); } else { records[date] = new NewsMapRecord(date, records[date].recordsCount + 1); } } } map.records = records.Values.OrderBy(r => r.date).ToArray(); return(map); }
public NewsMap GetNewsMap(int accountId) { var map = new NewsMap { channelIds = new int[0], records = new NewsMapRecord[0] }; if (!channelsByAccount.ContainsKey(accountId)) { return(map); } map.channelIds = channelsByAccount[accountId]; // посчитать количество записей на дату var records = new Dictionary <DateTime, NewsMapRecord>(); foreach (var chan in map.channelIds) { var list = newsByChannel[chan]; foreach (var news in list) { var date = news.Time.Date; if (!records.ContainsKey(date)) { records.Add(date, new NewsMapRecord(date, 1)); } else { records[date] = new NewsMapRecord(date, records[date].recordsCount + 1); } } } map.records = records.Values.OrderBy(r => r.date).ToArray(); return(map); }