private CourseViewModel LoadViewModel(ProviderSummary org, Domain.Models.Course course, bool multipleOrganisations, UcasCourseEnrichmentGetModel ucasCourseEnrichmentGetModel, CourseRouteDataViewModel routeData) { var courseVariant = new ViewModels.CourseDetailsViewModel { CourseTitle = course.Name, Type = course.TypeDescription, AccreditingProviderName = course.AccreditingProvider?.ProviderName, AccreditingProviderCode = course.AccreditingProvider?.ProviderCode, CourseCode = course.CourseCode, ProviderCode = course.Provider.ProviderCode, AgeRange = course.AgeRange, Route = course.ProgramType, Qualifications = course.ProfpostFlag, StudyMode = course.StudyMode, Subjects = course.Subjects, Status = course.GetCourseStatus(), Sites = course.CourseSites.Select(courseSite => { var addressLines = (new List <string>() { courseSite.Site.Address1, courseSite.Site.Address2, courseSite.Site.Address3, courseSite.Site.Address4, courseSite.Site.Postcode }) .Where(line => !string.IsNullOrEmpty(line)); var address = addressLines.Count() > 0 ? addressLines.Where(line => !string.IsNullOrEmpty(line)) .Aggregate((string current, string next) => current + ", " + next) : ""; return(new SiteViewModel { ApplicationsAcceptedFrom = courseSite.ApplicationsAcceptedFrom.ToString(), Code = courseSite.Site.Code, LocationName = courseSite.Site.LocationName, Address = address, Status = courseSite.Status, VacStatus = courseSite.VacStatus }); }) }; var isSalary = course.ProgramType.Equals("SS", StringComparison.InvariantCultureIgnoreCase) || course.ProgramType.Equals("TA", StringComparison.InvariantCultureIgnoreCase); var courseEnrichmentViewModel = GetCourseEnrichmentViewModel(ucasCourseEnrichmentGetModel, isSalary, routeData); var viewModel = new CourseViewModel { ProviderName = org.ProviderName, ProviderCode = org.ProviderCode, CourseTitle = course.Name, AccreditingProviderCode = course.AccreditingProvider?.ProviderCode, MultipleOrganisations = multipleOrganisations, Course = courseVariant, CourseEnrichment = courseEnrichmentViewModel, LiveSearchUrl = searchAndCompareUrlService.GetCoursePageUri(org.ProviderCode, courseVariant.CourseCode), IsSalary = isSalary }; return(viewModel); }