private void GetCompletedHymnsBySeason(ServiceHymnInfo[] fetchedHymns, HymnGroup groupDetails) { if (fetchedHymns.Length != 0) { // filter out hymns that have no supported content fetchedHymns = fetchedHymns.Where(h => h.Has_Text || h.Has_Hazzat || h.Has_VerticalHazzat).ToArray(); foreach (var hymnInfo in fetchedHymns) { groupDetails.Add(new ServiceHymnMenuItem() { ItemId = hymnInfo.ItemId, Title = hymnInfo.Title, Structure_Name = hymnInfo.Structure_Name, HasSupportedContent = true }); } // Adding a lock since multiple services could be modifying the collection concurrently lock (HymnGroups) { HymnGroups.Add(groupDetails); } } }
private void LoadServiceHymnsByTune(SeasonInfo[] filteredSeasons) { foreach (var seasonInfo in filteredSeasons.OrderBy(s => s.Season_Order)) { var groupDetails = new HymnGroup(seasonInfo.Name); HazzatController.GetServiceHymnListBySeasonIdAndTuneId(seasonInfo.ItemId, NavigationInfo.ItemId, (sender, e) => GetCompletedHymnsBySeasonAndTypeOrTune(e.Result, groupDetails)); } }
private void LoadServiceHymns(StructureInfo[] hymnsBySeason) { foreach (var structInfo in hymnsBySeason.OrderBy(s => s.Service_Order)) { var groupDetails = new HymnGroup(structInfo.Service_Name); HazzatController.GetSeasonServiceHymns( structInfo.ItemId, (sender, e) => GetCompletedHymnsBySeason(e.Result, groupDetails)); } }
private void GetCompletedHymnsBySeasonAndTypeOrTune(ServiceHymnInfo[] fetchedHymns, HymnGroup groupDetails) { if (fetchedHymns == null) { return; } foreach (var hymnInfo in fetchedHymns) { groupDetails.Add(new ServiceHymnMenuItem() { ItemId = hymnInfo.ItemId, Title = hymnInfo.Title, Structure_Name = hymnInfo.Structure_Name, HasSupportedContent = hymnInfo.Has_Text || hymnInfo.Has_Hazzat || hymnInfo.Has_VerticalHazzat }); } // Adding a lock since multiple services could be modifying the collection concurrently lock (HymnGroups) { HymnGroups.Add(groupDetails); } }