public PortfolioSecurityTargetRepository ClaimRepository( BuPortfolioSecurityTargetChangesetInfo latestChangesetSnapshoot, IDataManager manager ) { var found = this.storage[StorageKey]; if (found != null) { var latestChangeset = manager.GetLatestPortfolioSecurityTargetChangeSet(); if (latestChangesetSnapshoot.Id < latestChangeset.Id) { throw new ValidationException( new ErrorIssue("User \"" + latestChangeset.Username + "\" modified the bottom-up-portfolio/security/target composition on " + latestChangeset.Timestamp + ".") ); } else { return(found); } } else { var targetInfos = manager.GetAllPortfolioSecurityTargets(); found = new PortfolioSecurityTargetRepository(this.copier, targetInfos); this.storage[StorageKey] = found; return(found); } }
public IEnumerable <String> FindMissingCountries( Taxonomy taxonomy, IEnumerable <BenchmarkSumByIsoInfo> benchmarks, IEnumerable <String> overlaySecurityIds, ManagingPst.PortfolioSecurityTargetRepository portfolioSecurityTargetRepository, ISecurityIdToPortfolioIdResolver securityToPortfolioResolver, SecurityRepository securityRepository ) { var knownIsoCodes = this.taxonomyIsoCodeExtractor.ExtractCodes(taxonomy); var whateverIsoCodesFromBenchmarks = this.benchmarkingIsoCodeExtractor.ExtractCodes(benchmarks); var whateverIsoCodesFromOverlay = this.overlayIsoCodeExtractor.ExtractCodes( overlaySecurityIds, portfolioSecurityTargetRepository, securityToPortfolioResolver, securityRepository ); var whateverIsoCodes = whateverIsoCodesFromBenchmarks.Union(whateverIsoCodesFromOverlay).ToArray(); var unknownIsoCodes = this.unknownIsoCodesDetector.FindUnknownCodes(knownIsoCodes, whateverIsoCodes); return(unknownIsoCodes); }