Ejemplo n.º 1
0
        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);
        }