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