public string GetDynamicCellID(string cellID, InstanceFact fact) { var dynamiccellID = cellID; var cellobj = new Cell(); cellobj.SetFromCellID(cellID); if (cellobj.IsDynamic) { var reportid = cellobj.Report; if (DynamicReportCells.ContainsKey(reportid)) { var dynamicdata = DynamicReportCells[reportid]; if (dynamicdata != null) { if (this.FactDictionary.FactsByInstanceKey.ContainsKey(fact.InstanceKey)) { var ifactix = this.FactDictionary.FactsByInstanceKey[fact.InstanceKey]; var ifact = this.FactDictionary.FactsByIndex[ifactix]; var cells = ifact.Cells; var cellid = ""; var cellobjs = cells.Select(s => { var cellobject = new Cell(); cellobject.SetFromCellID(s); return(cellobject); }).ToList(); cellobjs = cellobjs.Where(i => i.Report == cellobj.Report).ToList(); cellid = cellobjs.Count > 0 ? cellobjs.FirstOrDefault().CellID : ""; if (string.IsNullOrEmpty(cellid)) { return(""); } cellobj.SetFromCellID(cellid); } } else { Logger.WriteLine("No Dynamic Data found for " + reportid); } } } return(cellobj.CellID); }
public void SetCells() { var reportdict = new Dictionary <string, int>(); var facttuples = this.Facts.Select(i => new Tuple <int, InstanceFact> (this.Taxonomy.FactsManager.GetFactIndex(i.TaxonomyKey), i)).OrderBy(i => i.Item1); foreach (var facttuple in facttuples) { var fact = facttuple.Item2; var factix = facttuple.Item1; if (this.Taxonomy.HasFact(fact.TaxonomyKey)) { fact.Cells = this.Taxonomy.GetCellsOfFact(factix); var Cells = fact.Cells.ToList(); if (Cells.Count == 0) { } fact.Cells.Clear(); foreach (var cell in Cells) { var cellobj = new Cell(); cellobj.SetFromCellID(cell); if (!DynamicReportCells.ContainsKey(cellobj.Report)) { DynamicReportCells.Add(cellobj.Report, new DynamicCellDictionary(this)); } var dynamiccellsofreport = DynamicReportCells[cellobj.Report]; var table = Taxonomy.Tables.FirstOrDefault(i => i.ID == cellobj.Report); var dynamicCell = dynamiccellsofreport.AddCells(cellobj, fact, table); if (dynamicCell.CellID != cellobj.CellID) { } var reportid = cellobj.Report; if (!reportdict.ContainsKey(reportid)) { reportdict.Add(reportid, 0); } reportdict[reportid] = reportdict[reportid] + 1; var rdatakey = cellobj.Report + "___" + cellobj.Extension; if (!reportdatadict.ContainsKey(rdatakey)) { reportdatadict.Add(rdatakey, 1); } reportdatadict[rdatakey] = reportdatadict[rdatakey] + 1; } } else { } fact.SetContent(); } foreach (var key in reportdict.Keys) { var table = Taxonomy.Tables.FirstOrDefault(i => i.ID == key); table.InstanceFactsCount = reportdict[key]; } }