public Task <IServiceResult <Error, Rate[]> > GetRatesAsync(int year, int month, string[] currencyCodes) { return(RunAsync(async() => { if (year < 1990 || year > DateTime.UtcNow.Year) { return ServiceResult <Error, Rate[]> .Fault(null, BlErrors.Error1003(nameof(year), year.ToString())); } if (month < 1 || month > 12) { return ServiceResult <Error, Rate[]> .Fault(null, BlErrors.Error1003(nameof(month), month.ToString())); } var rates = await _unitOfWork.RateRepository.GetEntitiesAsync(Specifications.MonthRate(year, month, currencyCodes)); return ServiceResult <Error> .Success(rates.ToArray()); })); }