public GetProjectsAcademyResponseModel Map(AcademyTransfersProjectAcademy academy)
        {
            if (academy == null)
            {
                return(null);
            }

            return(new GetProjectsAcademyResponseModel
            {
                ProjectAcademyId = academy.AcademyTransfersProjectAcademyId,
                AcademyId = academy.AcademyId,
                AcademyName = _establishmentNameFormatter.Format(academy.AcademyName),
                ProjectId = academy.ProjectId,
                EsfaInterventionReasons = ExtractEsfaInterventionReasons(academy),
                EsfaInterventionReasonsExplained = academy.EsfaInterventionReasonsExplained,
                RddOrRscInterventionReasons = ExtractRddorRscInterventionReason(academy),
                RddOrRscInterventionReasonsExplained = academy.RddOrRscInterventionReasonsExplained,
                AcademyTrusts = academy.ProjectAcademyTrusts == null || academy.ProjectAcademyTrusts.Count == 0
                                ? new List <GetAcademyTrustsResponseModel>()
                                : academy.ProjectAcademyTrusts.Select(t => new GetAcademyTrustsResponseModel
                {
                    ProjectTrustId = t.ProjectAcademyTrustId,
                    TrustId = t.TrustId,
                    TrustName = _establishmentNameFormatter.Format(t.TrustName)
                })
                                .ToList()
            });
        }
        public GetAcademiesModel Map(GetAcademiesD365Model input)
        {
            if (input == null)
            {
                return(null);
            }

            return(new GetAcademiesModel
            {
                Id = input.Id,
                AcademyName = _establishmentNameFormatter.Format(input.AcademyName),
                Address = input.Address,
                DioceseName = input.DioceseName,
                EstablishmentType = input.EstablishmentType,
                LocalAuthorityName = input.LocalAuthorityName,
                LocalAuthorityNumber = input.LocalAuthorityNumber,
                OfstedInspectionDate = input.OfstedInspectionDate,
                OfstedRating = input.OftstedRating,
                ParentTrustId = input.ParentTrustId.Value,
                Pfi = input.Predecessor?.Pfi,
                ReligiousCharacter = input.ReligiousCharacter,
                ReligiousEthos = input.ReligiousEthos,
                Urn = input.Urn,
                Ukprn = input.Ukprn
            });
        }
        public GetTrustsModel Map(GetTrustsD365Model input)
        {
            if (input == null)
            {
                return(null);
            }

            return(new GetTrustsModel
            {
                Id = input.Id,
                Address = input.Address,
                CompaniesHouseNumber = input.CompaniesHouseNumber,
                EstablishmentType = input.EstablishmentType,
                EstablishmentTypeGroup = input.EstablishmentTypeGroup,
                TrustName = _establishmentNameFormatter.Format(input.TrustName),
                TrustReferenceNumber = input.TrustReferenceNumber,
                Ukprn = input.Ukprn,
                Upin = input.Upin
            });
        }