public ProjectMapPopupViewData(FirmaSession currentFirmaSession, ProjectFirmaModels.Models.Project project, bool showDetailedInformation) { //Project = project; DisplayName = project.GetDisplayName(); ProjectUrl = project.GetDetailUrl(); KeyPhoto = project.GetKeyPhoto(); Duration = project.GetDuration(); ProjectStage = project.ProjectStage; TaxonomyLeaf = project.TaxonomyLeaf; EstimatedTotalCost = project.GetEstimatedTotalRegardlessOfFundingType().HasValue ? project.GetEstimatedTotalRegardlessOfFundingType().ToStringCurrency() : "Unknown"; var dict = new Dictionary <ProjectFirmaModels.Models.ClassificationSystem, string>(); project.ProjectClassifications.Select(x => x.Classification.ClassificationSystem).Distinct(new HavePrimaryKeyComparer <ProjectFirmaModels.Models.ClassificationSystem>()).ToList().ForEach(x => dict.Add(x, string.Join(", ", project.ProjectClassifications.Select(y => y.Classification).Where(y => y.ClassificationSystem == x).Select(y => y.GetDisplayName()).ToList()))); ClassificationsBySystem = dict; OfferFactSheetLink = OfferProjectFactSheetLinkFeature.OfferProjectFactSheetLink(currentFirmaSession, project); FactSheetUrl = project.GetFactSheetUrl(); DetailLinkDescriptor = project.IsProposal() ? $"This {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} is a proposal. For description and expected results, see the" : $"For {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} expenditures & results, see the"; InitializeDisplayNames(); TaxonomyLevel = MultiTenantHelpers.GetTaxonomyLevel(); ShowDetailedInformation = showDetailedInformation; }