private static LearningProviderRates Map(
            LocalDomainModels.SchoolInformation schoolInformation)
        {
            LearningProviderRates toReturn = null;

            BaselineFunding baselineFunding =
                Map(schoolInformation.BaselineFunding);
            NotionalFunding notionalFunding =
                Map(schoolInformation.NotionalFunding);

            IllustrativeFunding illustrativeFunding = null;

            if (schoolInformation.IllustrativeFunding != null)
            {
                illustrativeFunding =
                    Map(schoolInformation.IllustrativeFunding);
            }

            toReturn = new LearningProviderRates()
            {
                BaselineFunding     = baselineFunding,
                IllustrativeFunding = illustrativeFunding,
                NotionalFunding     = notionalFunding,
            };

            return(toReturn);
        }
        /// <inheritdoc />
        public async Task <LearningProviderRates> GetLearningProviderRatesAsync(
            int year,
            long urn,
            string fields,
            CancellationToken cancellationToken)
        {
            LearningProviderRates toReturn = null;

            LocalDomainModels.SchoolInformation schoolInformation =
                await this.schoolInformationStorageAdapter.GetSchoolInformationAsync(
                    year,
                    urn,
                    cancellationToken)
                .ConfigureAwait(false);

            toReturn = Map(schoolInformation);

            if (!string.IsNullOrEmpty(fields))
            {
                toReturn = toReturn.Pick(fields);
            }

            return(toReturn);
        }