public IEnumerable <Engineer> Filter(IEnumerable <Engineer> engineers, LocalDate scheduleDate) { var previousWorkdayOffset = scheduleDate.DayOfWeek == IsoDayOfWeek.Monday ? -3 : -1; var previousWorkdaysSchedule = _supportScheduleRepository.Get(scheduleDate.PlusDays(previousWorkdayOffset)); if (previousWorkdaysSchedule != null) { var excludedEngineers = previousWorkdaysSchedule.Engineers; return(engineers.Where(candidate => !excludedEngineers.Contains(candidate))); } return(engineers); }
public IActionResult Get(string date) { if (string.IsNullOrWhiteSpace(date)) { return(BadRequest()); } var parseResult = LocalDatePattern.Iso.Parse(date); if (!parseResult.Success) { return(BadRequest()); } var dailySchedule = _supportScheduleRepository.Get(parseResult.Value); if (dailySchedule == null) { return(NotFound()); } return(Ok(dailySchedule)); }