private IEnumerable <CompanyChain> GetCompanyChainsWithUpdateReportCompanies(int targetCompanyId, ICollection <NPReportCompany> reportCompanies)
        {
            var chains       = new List <CompanyChain>();
            var idirectPaths = GetPaths(targetCompanyId).Where(x => x.Count() > 1);

            foreach (var path in idirectPaths)
            {
                var chainCompanies = new List <NPReportCompany>();
                foreach (var edge in path)
                {
                    var reportCompany = reportCompanies.SingleOrDefault(x => x.ProjectCompany.Id == edge.Target);
                    if (reportCompany == null)
                    {
                        var factShare = factShares.First(x => x.DependentProjectCompanyId == edge.Target);//
                        reportCompany = new NPReportCompany(factShare, companyNumberContainer);
                        reportCompanies.Add(reportCompany);
                    }
                    chainCompanies.Add(reportCompany);
                }
                chains.Add(new CompanyChain(chains.Count() + 1, chainCompanies));
            }
            return(chains);
        }
 protected NPCompanySheetBase(ExcelWorksheet sheet, NPReportCompany company, int pageNumber)
     : base(sheet, company.OwnerCompany, pageNumber)
 {
     Company = company;
 }