public void ItemText_MergeEmpty() { var item1 = new ItemText() { Items = new List <ItemTextUnit>() { new ItemTextUnit("cs-ru", "1"), new ItemTextUnit("cs-cs", "1"), } }; var item2 = new ItemText() { Items = new List <ItemTextUnit>() { new ItemTextUnit("cs-ru", "2"), new ItemTextUnit("ru-ru", "1"), } }; var item3 = new ItemText(); item3.Merge(item1, item2); Assert.AreEqual("1 2", item3.FirstOrDefault("cs-ru").Text); Assert.AreEqual("1", item3.FirstOrDefault("cs-cs").Text); }
private ItemText GetShortName(IReadOnlyList <DayWorship> dayWorships) { var result = new ItemText(); foreach (var worship in dayWorships) { result.Merge(", ", worship.WorshipShortName); } return(result); }
public ItemText Compose(DateTime date, int seniorRulePriority, IReadOnlyList <DayWorship> dayWorships) { var result = new ItemText(); if (dayWorships == null || dayWorships.Count == 0) { return(result); } //собираем все имена текстов, кроме главного if (dayWorships.Count > 1) { for (int i = 1; i < dayWorships.Count; i++) { result.Merge(dayWorships[i].WorshipName); } } //а теперь разбираемся с главным DayWorship seniorService = dayWorships.First(); var s = seniorService.WorshipName; if (date.DayOfWeek != DayOfWeek.Sunday || (date.DayOfWeek == DayOfWeek.Sunday && (seniorService.UseFullName || seniorService.WorshipShortName.IsEmpty))) { result = new ItemText(seniorService.WorshipName).Merge(result); } //Воскресный день if ((date.DayOfWeek == DayOfWeek.Sunday) && (seniorRulePriority > 1)) { //Если Триоди нет и воскресенье, находим название Недели из Октоиха //и добавляем название Недели в начало Name //Если имеется короткое название, то добавляем только его var shortName = GetShortName(dayWorships); var sundayName = queryProcessor.Process(new SundayNameQuery(date, shortName)); result = sundayName.Merge(result); } return(result); }