Ejemplo n.º 1
0
        protected override void OnEnable()
        {
            base.OnEnable();
            multiDimPresenter_prop = serializedObject.FindProperty("_multiDimPresenter");
            dataItemMesh_prop      = serializedObject.FindProperty("_dataItemMesh");
            useMinItem_prop        = serializedObject.FindProperty("_useMinIndex");

            _stackedBar = (StackedBar)serializedObject.targetObject;
        }
Ejemplo n.º 2
0
        private void AdjustResidual(StackedBar stackedBar, double residualVal)
        {
            var residualStack = stackedBar.Stacks.Where(s => String.Compare(s.Legend, CAConstants.RESIDUAL_SLICE) == 0).FirstOrDefault();

            if (residualStack == null)
            {
                stackedBar.Stacks.Add(new Ordinate {
                    Legend = CAConstants.RESIDUAL_SLICE, Value = Math.Round(residualVal, CAConstants.CHART_LABEL_PRECISION)
                });
            }
            else
            {
                residualStack.Value += Math.Round(residualVal, CAConstants.CHART_LABEL_PRECISION);
            }
        }
Ejemplo n.º 3
0
        public ActionResult BudgetMonthBarStacked()
        {
            var bs = new List <StackedBar>();

            foreach (var c in db.Categories.Include("Expenses").Where(c => c.Occurance == "Monthly"))
            {
                var expenses   = c.Expenses.Where(e => e.DateRecorded.Year == DateTime.Today.Year).Where(e => e.DateRecorded.Month == DateTime.Today.Month).Select(e => e.Cost).Sum();
                var budgetLeft = c.BudgetCost - expenses;


                var newStackedBar = new StackedBar();
                newStackedBar.xkey = c.Type.ToString();
                // newStackedBar.xkey = "a[href^='http://stackoverflow.com']";
                newStackedBar.ykey1 = budgetLeft.ToString();
                newStackedBar.ykey2 = expenses.ToString();

                bs.Add(newStackedBar);
            }

            return(Json(bs, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 4
0
        public override void Populate(List <SentenceFragment> dataSlices)
        {
            string monthYear = dataSlices[0].RecognizedEntities.
                               Where(re => re.Entity is Time).
                               Select(re => re.Value.ToFormattedDateTimeStr("MMM yyyy")).
                               FirstOrDefault();
            //bool isPanTumor = ChartAuditRuleEngine.GetTumors(sentenceFragments[0]).Count == 0;
            var    measureRE             = dataSlices[0].RecognizedEntities.Where(re => re.IsMeasure).FirstOrDefault();
            string measureName           = measureRE.Entity.DomainName;
            string measureField          = measureRE.Entity.FieldName;
            string measureRecognizedName = measureRE.RecognizedName;

            if (String.IsNullOrEmpty(measureField))
            {
                return;
            }
            HashSet <string> tumorNames = new HashSet <string>();
            var stackedBarMap           = new Dictionary <string, StackedBar>();
            HashSet <string> legends    = new HashSet <string>();
            int count = 0;

            foreach (var row in dataSlices)
            {
                count++;
                string tumorName = TumorNames[count - 1];
                if (!tumorNames.Contains(tumorName))
                {
                    tumorNames.Add(tumorName);
                }
                StackedBar stackedBar = null;
                if (!stackedBarMap.ContainsKey(tumorName))
                {
                    stackedBarMap.Add(tumorName, new StackedBar {
                        Abscissa = tumorName, Stacks = new List <Ordinate>()
                    });
                }
                stackedBar = stackedBarMap[tumorName];
                var measureVal = row.RecognizedEntities.
                                 Where(re => re.Entity is Measure).
                                 Select(re => re.Value.SafeToDouble()).
                                 FirstOrDefault();
                stackedBar.Stacks.Add(new Ordinate
                {
                    Legend = String.Empty,
                    Value  = measureVal
                });
            }

            StackedBars = stackedBarMap.Values.ToList();
            //the following code is added because of the limitation of the front end chart library to identify distinct legends from stacked bars correctly
            foreach (var legend in legends)
            {
                var stackedBarsMissingThisLegend = StackedBars.Where(sb => !sb.Stacks.Select(sbs => sbs.Legend).Contains(legend));
                foreach (var stackedBar in stackedBarsMissingThisLegend)
                {
                    stackedBar.Stacks.Add(new Ordinate {
                        Legend = legend, Value = 0
                    });
                }
            }

            string captionStr = IsPanTumor ? CAConstants.PAN_TUMOR : (legends.Count == 1 ? legends.First() : String.Join(", ", tumorNames));

            Caption = String.Format("{0} {1} in {2}", captionStr, measureRecognizedName, monthYear);
            StackedBars.ForEach(sb => sb.Stacks = sb.Stacks.OrderBy(sbs => sbs.Legend).ToList());
            Arrange(StackedBars);
            BuildNarrative(monthYear, measureName);
        }