Ejemplo n.º 1
0
        public void Events_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            switch (e.PropertyName)
            {
            case TwNotificationProperty.OnStartClassify:
            case TwNotificationProperty.OnStartMergeSplit:
            case TwNotificationProperty.OnStartApplyConversionFactor:
                fixtureSummariesOld = new FixtureSummaries(Analysis.Events);
                fixtureSummariesOld.Update();
                break;

            case TwNotificationProperty.OnEndMergeSplit:
                UpdateFixturesSummaryPanels(fixtureSummariesOld, Analysis.FixtureSummaries);
                CollapseFixturePanels(fixtureSummariesOld);
                UpdateButtons();
                break;

            case TwNotificationProperty.OnEndClassify:
                UpdateFixturesSummaryPanels(fixtureSummariesOld, Analysis.FixtureSummaries);
                CollapseFixturePanels(fixtureSummariesOld);
                UpdateButtons();
                break;

            case TwNotificationProperty.OnEndSelect:
                UpdateSelectedCountLabels();
                UpdateButtons();
                break;

            case TwNotificationProperty.OnEndApplyConversionFactor:
                UpdateFixturesSummaryPanels(fixtureSummariesOld, Analysis.FixtureSummaries);
                UpdateButtons();
                break;
            }
        }
Ejemplo n.º 2
0
        void UpdateFixtureSummaryPanelTotal(Events events, FixtureSummaries fixtureSummariesOld, FixtureSummaries fixtureSummariesNew)
        {
            var fixtureSummaryPanel = FixturePanelTotal.FixtureSummaryPanel;

            fixtureSummaryPanel.textBlockInstancesCount.Text    = events.Count.ToString();
            fixtureSummaryPanel.textBlockInstancesCount.ToolTip = "Total Number of Events";

            UpdateFixtureSummaryInstanceDeltaTotals(fixtureSummaryPanel.textBlockInstancesDelta, fixtureSummariesOld, fixtureSummariesNew);
            fixtureSummaryPanel.textBlockInstancesDelta.ToolTip = "Total Increase or Decrease in Number of Events";

            fixtureSummaryPanel.textBlockVolume.Text       = events.Volume.ToString("0.0");
            fixtureSummaryPanel.textBlockVolume.FontWeight = FontWeights.Bold;
            fixtureSummaryPanel.textBlockVolume.ToolTip    = "Total Volume of Events";

            double percentInitialVolume = events.InitialVolume / events.Volume;

            fixtureSummaryPanel.textBlockVolumePercent.Text = (percentInitialVolume * 100).ToString("0.0") + "%";
            if (events.CheckVolume())
            {
                fixtureSummaryPanel.textBlockVolumePercent.ToolTip    = "Initial Total Percent Volume";
                fixtureSummaryPanel.textBlockVolumePercent.Background = fixtureSummaryPanel.textBlockVolume.Background;
            }
            else
            {
                fixtureSummaryPanel.textBlockVolumePercent.ToolTip    = "Warning: Initial Total Percent Volume differs significantly from Current Total Percent Volume";
                fixtureSummaryPanel.textBlockVolumePercent.Background = new SolidColorBrush(Colors.Red);
            }
        }
        public override FixtureClass Classify(Event @event)
        {
            LazyInitialize();

            if (Exemplars == null || Exemplars.Events == null)
            {
                return(FixtureClasses.Unclassified);
            }

            FixtureClass fixtureClass;

            double?  minVolume   = @event.Decrease(@event.Volume, volumePercent);
            double?  maxVolume   = @event.Increase(@event.Volume, volumePercent);
            double?  minPeak     = @event.Decrease(@event.Peak, peakPercent);
            double?  maxPeak     = @event.Increase(@event.Peak, peakPercent);
            TimeSpan?minDuration = @event.DecreaseDuration(@event.Duration, durationPercent);
            TimeSpan?maxDuration = @event.IncreaseDuration(@event.Duration, durationPercent);
            double?  minMode     = @event.Decrease(@event.Mode, modePercent);
            double?  maxMode     = @event.Increase(@event.Mode, modePercent);

            var fixtureSummaries = new FixtureSummaries(Exemplars.Events);

            foreach (Event exemplar in Exemplars.Events)
            {
                if (exemplar.IsSimilar(@event.FixtureClass, minVolume, maxVolume, minPeak, maxPeak, minDuration, maxDuration, minMode, maxMode))
                {
                    fixtureSummaries[exemplar.FixtureClass].Count++;
                }
            }

            fixtureClass = fixtureSummaries.MaximumFixtureClass();

            return(fixtureClass);
        }
Ejemplo n.º 4
0
        void BuildRowHeader(int row, string label, string value, FixtureSummaries fixtureSummaries)
        {
            int column = 0;

            BuildRowBase(row, ref column, label, value, true);

            if (fixtureSummaries != null)
            {
                IEnumerable <FixtureSummary> sorted = Enumerable.OrderByDescending(Analysis.FixtureSummaries.Values, n => n.Volume);

                foreach (FixtureSummary fixtureSummary in sorted)
                {
                    if (fixtureSummary.Volume > 0)
                    {
                        var fixture = new ShortFixtureLabel(fixtureSummary.FixtureClass);
                        fixture.HorizontalImageAlignment = HorizontalAlignment.Right;
                        fixture.HorizontalAlignment      = HorizontalAlignment.Right;
//                        fixture.Padding = new Thickness(0, 0, 10, 0);
                        fixture.Padding = new Thickness(0);
                        fixture.Margin  = new Thickness(0, 0, 10, 0);
                        Grid.SetRow(fixture, row);
                        Grid.SetColumn(fixture, column++);
                        Grid.Children.Add(fixture);
                    }
                }
            }
        }
        public void Initialize()
        {
            FixtureSummaries fixtureSummaries = Analysis.FixtureSummaries;

            foreach (FixtureSummary fixtureSummary in fixtureSummaries.Values)
            {
                fixtureSummary.Events.UpdateMedians();
            }

            string keyCode = Analysis.KeyCode;

            IEnumerable <FixtureSummary> sorted = Enumerable.OrderByDescending(Analysis.FixtureSummaries.Values, n => n.Volume);

            foreach (FixtureSummary fixtureSummary in sorted)
            {
                var fixtureClass = fixtureSummary.FixtureClass;
                if (fixtureSummary.Events.Count != 0)
                {
                    var eventsProperties = new EventsProperties(fixtureClass,
                                                                fixtureSummaries[fixtureClass].Events, fixtureSummaries[fixtureClass].Events.Count,
                                                                fixtureSummaries[fixtureClass].FirstCycles);
                    eventsProperties.Margin = new Thickness(20, 0, 20, 20);
                    grid.Children.Add(eventsProperties);
                }
            }
        }
Ejemplo n.º 6
0
        void UpdateFixtureSummaryInstanceDeltaTotals(TextBlock textBlock, FixtureSummaries fixtureSummariesOld, FixtureSummaries fixtureSummariesNew)
        {
            int countNew   = fixtureSummariesNew.CountEvents();
            int countOld   = fixtureSummariesOld.CountEvents();
            int deltaCount = countNew - countOld;

            if (deltaCount == 0)
            {
                textBlock.Text = string.Empty;
            }
            else
            {
                if (deltaCount > 0)
                {
                    textBlock.Text       = "+" + deltaCount.ToString();
                    textBlock.Foreground = TwBrushes.GetPlusBrush();
                    textBlock.FontWeight = FontWeights.Bold;
                }
                else
                {
                    textBlock.Text       = deltaCount.ToString();
                    textBlock.Foreground = TwBrushes.GetMinusBrush();
                    textBlock.FontWeight = FontWeights.Bold;
                }
            }
        }
Ejemplo n.º 7
0
 void InitializeFixtureSummaries(FixtureSummaries fixtureSummaries)
 {
     for (int i = 0; i < FixtureClasses.Items.Count; i++)
     {
         FixturePanel fixturePanel = (FixturePanel)grid.Children[i];
         FixtureClass fixtureClass = fixturePanel.FixtureClass;
     }
 }
Ejemplo n.º 8
0
 void UpdateSelectLabels(FixtureSummaries fixtureSummariesNew)
 {
     for (int i = 0; i < FixtureClasses.Items.Count; i++)
     {
         FixturePanel fixturePanel = (FixturePanel)grid.Children[i];
         UpdateSelectLabels(fixturePanel.FixtureSummaryPanel, fixtureSummariesNew);
     }
     UpdateSelectedVolume(fixtureSummariesNew);
 }
Ejemplo n.º 9
0
 void UpdateFixturesSummaryPanels(FixtureSummaries fixtureSummariesOld, FixtureSummaries fixtureSummariesNew)
 {
     for (int i = 0; i < FixtureClasses.Items.Count; i++)
     {
         FixturePanel fixturePanel = (FixturePanel)grid.Children[i];
         UpdateFixtureSummary(fixturePanel.FixtureSummaryPanel, fixtureSummariesOld, fixtureSummariesNew);
     }
     UpdateFixtureSummaryPanelTotal(Analysis.Events, fixtureSummariesOld, fixtureSummariesNew);
 }
Ejemplo n.º 10
0
        void BuildRowFooter(int row, string label, string value, FixtureSummaries fixtureSummaries)
        {
            int column = 0;

            BuildRowBase(row, ref column, label, value, true);
            if (fixtureSummaries != null)
            {
                BuildRowFixtureSummaries(row, ref column, true, fixtureSummaries, 0, true);
            }
        }
Ejemplo n.º 11
0
        void BuildRow(int row, string label, string value, FixtureSummaries fixtureSummaries, int day, DateTime date)
        {
            int column = 0;

            BuildRowBase(row, ref column, label, value, false);

            if (fixtureSummaries != null)
            {
                BuildRowFixtureSummaries(row, ref column, false, fixtureSummaries, day, date, false);
            }
        }
Ejemplo n.º 12
0
        void BuildRow(int row, string label, string value, FixtureSummaries fixtureSummaries, int hour)
        {
            int column = 0;

            BuildRowBase(row, ref column, label, value, false);

            if (fixtureSummaries != null)
            {
                BuildRowFixtureSummaries(row, ref column, false, fixtureSummaries, hour, false);
            }
        }
Ejemplo n.º 13
0
        protected void UpdatePieChart(FixtureSummaries fixtureSummaries, double radius)
        {
            canvas.Children.Clear();
            double startAngle = 0;
            double endAngle;

            foreach (FixtureClass fixtureClass in FixtureClasses.Items.Values)
            {
                canvas.Children.Add(DrawWedge(radius, startAngle, out endAngle, fixtureSummaries[fixtureClass]));
                startAngle = endAngle;
            }
            return;
        }
Ejemplo n.º 14
0
        void UpdateFixtureSummaryVolumePercent(TextBlock textBlock, FixtureSummaries fixtureSummariesNew, FixtureClass fixtureClass)
        {
            double percentVolume = fixtureSummariesNew[fixtureClass].PercentVolume;

            if (percentVolume == 0)
            {
                textBlock.Text = string.Empty;
            }
            else
            {
                textBlock.Text    = (percentVolume * 100).ToString("0.0") + "%";
                textBlock.ToolTip = "Percentage of Total Volume Attributed to " + fixtureClass.FriendlyName + " Events";
            }
        }
Ejemplo n.º 15
0
        void UpdateFixtureSummaryVolumeCount(TextBlock textBlock, FixtureSummaries fixtureSummariesNew, FixtureClass fixtureClass)
        {
            double volume = fixtureSummariesNew[fixtureClass].Volume;

            if (volume == 0)
            {
                textBlock.Text = string.Empty;
            }
            else
            {
                textBlock.Text    = volume.ToString("0.0");
                textBlock.ToolTip = "Volume of " + fixtureClass.FriendlyName + " Events";
            }
        }
Ejemplo n.º 16
0
        void UpdateSelectedVolume(FixtureSummaries fixtureSummariesNew)
        {
            FixtureSummaryPanel fixtureSummaryPanel = FixturePanelTotal.FixtureSummaryPanel;

            if (fixtureSummariesNew.SelectedVolume == 0)
            {
                fixtureSummaryPanel.textBlockSelected.Text = string.Empty;
            }
            else
            {
                fixtureSummaryPanel.textBlockSelected.Text = fixtureSummariesNew.SelectedVolume.ToString("0.0");
            }
            fixtureSummaryPanel.textBlockSelected.ToolTip = "Total Volume of Selected Events";
        }
Ejemplo n.º 17
0
        void UpdateFixtureSummarySelectedCountLabels(TextBlock textBlock, FixtureSummaries fixtureSummariesNew, FixtureClass fixtureClass)
        {
            int countNew = fixtureSummariesNew[fixtureClass].SelectedCount;

            if (countNew == 0)
            {
                textBlock.Text = string.Empty;
            }
            else
            {
                textBlock.Text    = countNew.ToString();
                textBlock.ToolTip = "Number of " + fixtureClass.FriendlyName + " Events Selected";
            }
        }
Ejemplo n.º 18
0
        void UpdateFixtureSummary(FixtureSummaryPanel fixtureSummaryPanel, FixtureSummaries fixtureSummariesOld, FixtureSummaries fixtureSummariesNew)
        {
            FixtureClass fixtureClass = fixtureSummaryPanel.FixtureClass;

            UpdateFixtureSummaryInstanceCount(fixtureSummaryPanel.textBlockInstancesCount, fixtureSummariesNew, fixtureClass);

            UpdateFixtureSummaryInstanceDelta(fixtureSummaryPanel.textBlockInstancesDelta, fixtureSummariesNew, fixtureSummariesOld, fixtureClass);

            UpdateFixtureSummaryVolumeCount(fixtureSummaryPanel.textBlockVolume, fixtureSummariesNew, fixtureClass);

            UpdateFixtureSummaryVolumePercent(fixtureSummaryPanel.textBlockVolumePercent, fixtureSummariesNew, fixtureClass);

            UpdateFixtureSummarySelectedCountLabels(fixtureSummaryPanel.textBlockSelected, fixtureSummariesNew, fixtureClass);
        }
Ejemplo n.º 19
0
        void CollapseFixturePanels(FixtureSummaries fixtureSummariesOld)
        {
            bool showUnusedFixtures = Properties.Settings.Default.ShowUnusedFixtures;

            foreach (var item in grid.Children)
            {
                var panel = item as FixturePanel;
                if (panel != null && panel.FixtureClass != null && Analysis != null && Analysis.FixtureSummaries != null)
                {
                    if (Analysis.FixtureSummaries[panel.FixtureClass].Volume == 0 && (fixtureSummariesOld == null || fixtureSummariesOld[panel.FixtureClass].Volume == 0))
                    {
                        panel.Visibility = showUnusedFixtures ? Visibility.Visible : Visibility.Collapsed;
                    }
                    else
                    {
                        panel.Visibility = Visibility.Visible;
                    }
                }
            }
        }
Ejemplo n.º 20
0
        void UpdateFixtureSummaryInstanceCount(TextBlock textBlock, FixtureSummaries fixtureSummariesNew, FixtureClass fixtureClass)
        {
            int countNew = fixtureSummariesNew[fixtureClass].Count;

            if (countNew == 0)
            {
                textBlock.Text = string.Empty;
            }
            else
            {
                textBlock.Text = countNew.ToString();

                ToolTipService.SetShowDuration(textBlock, 60000);
                ToolTipService.SetInitialShowDelay(textBlock, 000);

                if (fixtureClass.CanHaveCycles)
                {
                    textBlock.Text += WrapInParentheses(fixtureSummariesNew[fixtureClass].FirstCycles.ToString());
                }
            }
        }
Ejemplo n.º 21
0
        void BuildRowFixtureSummaries(int row, ref int column, bool bold, FixtureSummaries fixtureSummaries, int hour, bool isTotalRow)
        {
            TextBlock txt;
            double    volume = 0.0;

            IEnumerable <FixtureSummary> sorted = Enumerable.OrderByDescending(Analysis.FixtureSummaries.Values, n => n.Volume);

            foreach (FixtureSummary fixtureSummary in sorted)
            {
                if (fixtureSummary.Volume > 0)
                {
                    if (isTotalRow)
                    {
                        volume = fixtureSummaries[fixtureSummary.FixtureClass].Volume;
                    }
                    else
                    {
                        volume = fixtureSummaries[fixtureSummary.FixtureClass].HourlyVolume[hour];
                    }

                    txt = new TextBlock();

//                    txt.Padding = new Thickness(0, 0, 10, 0);
                    txt.Padding = new Thickness(0);
                    txt.Margin  = new Thickness(0, 0, 10, 0);

                    txt.Text                = volume.ToString("0.0");
                    txt.Foreground          = (volume == 0) ? Brushes.LightGray : Brushes.Black;
                    txt.FontWeight          = bold ? FontWeights.Bold : FontWeights.Normal;
                    txt.HorizontalAlignment = HorizontalAlignment.Right;
                    Grid.SetRow(txt, row);
                    Grid.SetColumn(txt, column++);
                    Grid.Children.Add(txt);
                }
            }
        }
Ejemplo n.º 22
0
        public ProjectReportProperties CalculateProjectReportProperties(Events events, List <FixtureClass> fixtureClassesOutdoor)
        {
            Events           = events;
            FixtureSummaries = new FixtureSummaries(Events);
            FixtureSummaries.Update();

            List <FixtureClass> fixtureClassesIndoor = new List <FixtureClass>();

            foreach (FixtureClass fixtureClass in FixtureClasses.Items.Values)
            {
                if (!fixtureClassesOutdoor.Contains(fixtureClass))
                {
                    fixtureClassesIndoor.Add(fixtureClass);
                }
            }

            var ProjectReportProperties = new ProjectReportProperties();

            ProjectReportProperties.TotalVolume = Events.Volume;
            ProjectReportProperties.TraceBegins = Events.StartTime;
            ProjectReportProperties.TraceEnds   = Events.EndTime;

            ProjectReportProperties.TraceLengthDays = Events.EndTime.Date.Subtract(Events.StartTime.Date).Days + 1;

            ProjectReportProperties.TotalGpd = Events.Volume / ProjectReportProperties.TraceLengthDays;

            ProjectReportProperties.IndoorTotalGal  = CalculateVolume(fixtureClassesIndoor);
            ProjectReportProperties.OutdoorTotalGal = CalculateVolume(fixtureClassesOutdoor);

            ProjectReportProperties.BathtubTotalGal       = FixtureSummaries[FixtureClasses.Bathtub].Volume;
            ProjectReportProperties.ClotheswasherTotalGal = FixtureSummaries[FixtureClasses.Clotheswasher].Volume;
            ProjectReportProperties.CoolerTotalGal        = FixtureSummaries[FixtureClasses.Cooler].Volume;
            ProjectReportProperties.DishwasherTotalGal    = FixtureSummaries[FixtureClasses.Dishwasher].Volume;
            ProjectReportProperties.FaucetTotalGal        = FixtureSummaries[FixtureClasses.Faucet].Volume;
            ProjectReportProperties.LeakTotalGal          = FixtureSummaries[FixtureClasses.Leak].Volume;
            ProjectReportProperties.ShowerTotalGal        = FixtureSummaries[FixtureClasses.Shower].Volume;
            ProjectReportProperties.ToiletTotalGal        = FixtureSummaries[FixtureClasses.Toilet].Volume;
            ProjectReportProperties.TreatmentTotalGal     = FixtureSummaries[FixtureClasses.Treatment].Volume;

            ProjectReportProperties.OtherTotalGal = ProjectReportProperties.IndoorTotalGal
                                                    - FixtureSummaries[FixtureClasses.Bathtub].Volume
                                                    - FixtureSummaries[FixtureClasses.Clotheswasher].Volume
                                                    - FixtureSummaries[FixtureClasses.Cooler].Volume
                                                    - FixtureSummaries[FixtureClasses.Dishwasher].Volume
                                                    - FixtureSummaries[FixtureClasses.Faucet].Volume
                                                    - FixtureSummaries[FixtureClasses.Leak].Volume
                                                    - FixtureSummaries[FixtureClasses.Shower].Volume
                                                    - FixtureSummaries[FixtureClasses.Toilet].Volume
                                                    - FixtureSummaries[FixtureClasses.Treatment].Volume
            ;

            ProjectReportProperties.IndoorGpd        = ProjectReportProperties.IndoorTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.OutdoorGpd       = ProjectReportProperties.OutdoorTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.BathtubGpd       = ProjectReportProperties.BathtubTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.ClotheswasherGpd = ProjectReportProperties.ClotheswasherTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.CoolerGpd        = ProjectReportProperties.CoolerTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.DishwasherGpd    = ProjectReportProperties.DishwasherTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.FaucetGpd        = ProjectReportProperties.FaucetTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.LeakGpd          = ProjectReportProperties.LeakTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.ShowerGpd        = ProjectReportProperties.ShowerTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.ToiletGpd        = ProjectReportProperties.ToiletTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.TreatmentGpd     = ProjectReportProperties.TreatmentTotalGal / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.OtherGpd         = ProjectReportProperties.OtherTotalGal / ProjectReportProperties.TraceLengthDays;

            ProjectReportProperties.BathtubEvents       = FixtureSummaries[FixtureClasses.Bathtub].Count;
            ProjectReportProperties.ClotheswasherEvents = FixtureSummaries[FixtureClasses.Clotheswasher].FirstCycles;
            ProjectReportProperties.CoolerEvents        = FixtureSummaries[FixtureClasses.Cooler].Count;
            ProjectReportProperties.DishwasherEvents    = FixtureSummaries[FixtureClasses.Dishwasher].FirstCycles;
            ProjectReportProperties.FaucetEvents        = FixtureSummaries[FixtureClasses.Faucet].Count;
            ProjectReportProperties.LeakEvents          = FixtureSummaries[FixtureClasses.Leak].Count;
            ProjectReportProperties.ShowerEvents        = FixtureSummaries[FixtureClasses.Shower].Count;
            ProjectReportProperties.ToiletEvents        = FixtureSummaries[FixtureClasses.Toilet].Count;
            ProjectReportProperties.TreatmentEvents     = FixtureSummaries[FixtureClasses.Treatment].Count;

            ProjectReportProperties.OtherEvents = CalculateEvents(fixtureClassesIndoor)
                                                  - FixtureSummaries[FixtureClasses.Bathtub].Count
                                                  - FixtureSummaries[FixtureClasses.Clotheswasher].Count
                                                  - FixtureSummaries[FixtureClasses.Cooler].Count
                                                  - FixtureSummaries[FixtureClasses.Dishwasher].Count
                                                  - FixtureSummaries[FixtureClasses.Faucet].Count
                                                  - FixtureSummaries[FixtureClasses.Leak].Count
                                                  - FixtureSummaries[FixtureClasses.Shower].Count
                                                  - FixtureSummaries[FixtureClasses.Toilet].Count
                                                  - FixtureSummaries[FixtureClasses.Treatment].Count
            ;

            ProjectReportProperties.AverageClotheswasherLoadGal = ProjectReportProperties.ClotheswasherTotalGal / ProjectReportProperties.ClotheswasherEvents;
            ProjectReportProperties.ClotheswasherLoadsPerDay    = ((double)ProjectReportProperties.ClotheswasherEvents) / ProjectReportProperties.TraceLengthDays;

            ProjectReportProperties.TotalShowerMinutes       = CalculateTotalMinutes(FixtureClasses.Shower);
            ProjectReportProperties.AverageShowerSeconds     = (ProjectReportProperties.TotalShowerMinutes / ProjectReportProperties.ShowerEvents) * 60;
            ProjectReportProperties.TotalShowerGal           = ProjectReportProperties.ShowerTotalGal;
            ProjectReportProperties.AverageShowerGal         = ProjectReportProperties.ShowerTotalGal / ProjectReportProperties.ShowerEvents;
            ProjectReportProperties.AverageShowerModeFlowGpm = CalculateMeanMode(FixtureClasses.Shower);
            ProjectReportProperties.ShowersPerDay            = ((double)FixtureSummaries[FixtureClasses.Shower].Count) / ProjectReportProperties.TraceLengthDays;
            ProjectReportProperties.ShowerMinutesPerDay      = ProjectReportProperties.TotalShowerMinutes / ProjectReportProperties.TraceLengthDays;

            ProjectReportProperties.AverageToiletFlushVolume = ProjectReportProperties.ToiletTotalGal / ProjectReportProperties.ToiletEvents;
            ProjectReportProperties.ToiletFlushStDev         = CalculateVolumeStandardDeviation(FixtureClasses.Toilet);
            ProjectReportProperties.NumberOfToiletFlushesLessThan2Point2Gal    = CalculateToiletEventsLessThan(2.2);;
            ProjectReportProperties.NumberOfToiletFlushesGreaterThan2Point2Gal = ProjectReportProperties.ToiletEvents - ProjectReportProperties.NumberOfToiletFlushesLessThan2Point2Gal;
            ProjectReportProperties.FlushesPerDay = ((double)ProjectReportProperties.ToiletEvents) / ProjectReportProperties.TraceLengthDays;

            return(ProjectReportProperties);
        }
Ejemplo n.º 23
0
        void UpdateFixtureSummaryInstanceDelta(TextBlock textBlock, FixtureSummaries fixtureSummariesNew, FixtureSummaries fixtureSummariesOld, FixtureClass fixtureClass)
        {
            int countNew   = fixtureSummariesNew[fixtureClass].Count;
            int countOld   = fixtureSummariesOld[fixtureClass].Count;
            int deltaCount = countNew - countOld;

            int countFirstCyclesNew   = fixtureSummariesNew[fixtureClass].FirstCycles;
            int countFirstCyclesOld   = fixtureSummariesOld[fixtureClass].FirstCycles;
            int deltaFirstCyclesCount = countFirstCyclesNew - countFirstCyclesOld;

            textBlock.Text    = string.Empty;
            textBlock.ToolTip = string.Empty;

            if (deltaCount == 0 && deltaFirstCyclesCount == 0)
            {
                return;
            }

            if (deltaCount != 0)
            {
                textBlock.ToolTip += "This action ";

                if (deltaCount > 0)
                {
                    textBlock.Text       = "+" + deltaCount.ToString();
                    textBlock.Foreground = TwBrushes.GetPlusBrush();
                    textBlock.FontWeight = FontWeights.Bold;
                    textBlock.ToolTip   += "increased ";
                }
                else
                {
                    textBlock.Text       = deltaCount.ToString();
                    textBlock.Foreground = TwBrushes.GetMinusBrush();
                    textBlock.FontWeight = FontWeights.Bold;
                    textBlock.ToolTip   += "decreased ";
                }
                textBlock.ToolTip += "the number of " + fixtureClass.FriendlyName + " events by " + Math.Abs(deltaCount) + ".";
                if (deltaFirstCyclesCount != 0)
                {
                    textBlock.ToolTip += "\r\n";
                }
            }

            if (deltaFirstCyclesCount != 0)
            {
                textBlock.ToolTip += "This action ";

                if (deltaFirstCyclesCount > 0)
                {
                    textBlock.Text      += WrapInParentheses("+" + deltaFirstCyclesCount.ToString());
                    textBlock.Foreground = TwBrushes.GetPlusBrush();
                    textBlock.FontWeight = FontWeights.Bold;
                    textBlock.ToolTip   += "increased ";
                }
                else if (deltaFirstCyclesCount < 0)
                {
                    textBlock.Text      += WrapInParentheses(deltaFirstCyclesCount.ToString());
                    textBlock.Foreground = TwBrushes.GetMinusBrush();
                    textBlock.FontWeight = FontWeights.Bold;
                    textBlock.ToolTip   += "decreased ";
                }
                textBlock.ToolTip += "the number of " + fixtureClass.FriendlyName + " 1st cycles by " + Math.Abs(deltaFirstCyclesCount) + ".";
            }
        }
Ejemplo n.º 24
0
 void UpdateSelectLabels(FixtureSummaryPanel fixtureSummaryPanel, FixtureSummaries fixtureSummariesNew)
 {
     UpdateFixtureSummarySelectedCountLabels(fixtureSummaryPanel.textBlockSelected, fixtureSummariesNew, fixtureSummaryPanel.FixtureClass);
 }