public Result <LocalizedOutputWeek> GetWeek(int typiconId, DateTime date, string language) { date = EachDayPerWeek.GetMonday(date); var week = new LocalizedOutputWeek() { Name = _nameComposer.GetLocalizedWeekName(typiconId, date, language) }; int i = 0; while (i < 7) { var dayResult = GetDay(typiconId, date, language); if (dayResult.Failure) { return(Result.Fail <LocalizedOutputWeek>(dayResult.Error)); } week.Days.Add(dayResult.Value); date = date.AddDays(1); i++; } return(Result.Ok(week)); }
/// <summary> /// Возвращает неделю /// </summary> /// <param name="typiconVersionId"></param> /// <param name="date"></param> /// <returns></returns> public IEnumerable <OutputDay> CreateWeek(CreateOutputWeekRequest req) { List <OutputDay> result = new List <OutputDay>(); var dayReq = new CreateOutputDayRequest() { TypiconId = req.TypiconId, TypiconVersionId = req.TypiconVersionId, HandlingMode = HandlingMode.AstronomicDay }; OutputDayInfo dayInfo = null; EachDayPerWeek.Perform(req.Date, date => { dayReq.Date = date; var output = InnerCreate(dayReq, ref dayInfo, _dataCalculator); if (output != null) { result.Add(output.Day); } }); return(result); }
public Result <FilteredOutputWeek> Handle([NotNull] OutputWeekQuery query) { var date = EachDayPerWeek.GetMonday(query.Date); var week = new FilteredOutputWeek() { Name = QueryProcessor.Process(new WeekNameQuery(query.TypiconId, date, false, query.Filter.Language)) }; int i = 0; while (i < 7) { var dayResult = QueryProcessor.Process(new OutputDayQuery(query.TypiconId, date, query.Filter)); if (dayResult.Failure) { return(Result.Fail <FilteredOutputWeek>(dayResult.Error)); } //доблавяем только день, у которого есть богослужения if (dayResult.Value.Worships.Count > 0) { week.Days.Add(dayResult.Value); } date = date.AddDays(1); i++; } return(Result.Ok(week)); }