예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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));
            }
        }
예제 #3
0
        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));
            }
        }
예제 #4
0
        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);
            }
        }