示例#1
0
        public Result <FilteredOutputDay> GetDay(int typiconId, DateTime date, string language, HandlingMode handlingMode = HandlingMode.AstronomicDay)
        {
            date = date.Date;

            var scheduleDay = _dbContext.GetScheduleDay(typiconId, date, _serializer);

            //нашли сформированный день
            if (scheduleDay.Success)
            {
                return(Result.Ok(scheduleDay.Value.Localize(language)));
            }

            //добавляем задачу на формирование дня
            var version = _dbContext.GetPublishedVersion(typiconId);

            if (version.Failure)
            {
                return(Result.Fail <LocalizedOutputDay>(version.Error));
            }
            else
            {
                //добавляем задание на формирование выходных форм
                _jobs.Create(new CalculateOutputFormWeekJob(typiconId, version.Value.Id, date));

                return(Result.Fail <LocalizedOutputDay>($"Инициировано формирование расписания. Повторите операцию позже."));
            }
        }