/// <summary>
        /// Updates information in summary page.
        /// </summary>
        /// <param name="remappingList">List of remappings</param>
        private void UpdateSummaryInformation(IEnumerable <AttributesOptimizer.RemappingResult> remappingList)
        {
            var baseDuration = m_plan.GetTotalTime(m_character.After(m_plan.ChosenImplantSet), false);

            this.lvPoints.Items.Clear();

            // Add global informations
            ListViewGroup globalGroup = new ListViewGroup("Global informations");

            this.lvPoints.Groups.Add(globalGroup);

            TimeSpan savedTime = TimeSpan.Zero;

            foreach (var remap in remappingList)
            {
                savedTime += (remap.BaseDuration - remap.BestDuration);
            }

            this.lvPoints.Items.Add(new ListViewItem(String.Format(CultureConstants.DefaultCulture, "Current time : {0}",
                                                                   baseDuration.ToDescriptiveText(DescriptiveTextOptions.IncludeCommas), globalGroup)));

            if (savedTime != TimeSpan.Zero)
            {
                this.lvPoints.Items.Add(new ListViewItem(String.Format(CultureConstants.DefaultCulture, "Optimized time : {0}",
                                                                       baseDuration.Subtract(savedTime).ToDescriptiveText(DescriptiveTextOptions.IncludeCommas), globalGroup)));

                if (savedTime < TimeSpan.Zero)
                {
                    ListViewItem savedTimeItem = this.lvPoints.Items.Add(new ListViewItem(
                                                                             String.Format(CultureConstants.DefaultCulture, "{0} slower than current",
                                                                                           (-savedTime).ToDescriptiveText(DescriptiveTextOptions.IncludeCommas), globalGroup)));
                    savedTimeItem.ForeColor = Color.DarkRed;
                }
                else
                {
                    this.lvPoints.Items.Add(new ListViewItem(String.Format(CultureConstants.DefaultCulture, "{0} better than current",
                                                                           savedTime.ToDescriptiveText(DescriptiveTextOptions.IncludeCommas), globalGroup)));
                }
            }
            else
            {
                this.lvPoints.Items.Add(new ListViewItem("Your attributes are already optimal", globalGroup));
            }

            // Notify plan updated
            var lvi = new ListViewItem("Your plan has been updated.", globalGroup);

            lvi.Font = FontFactory.GetFont(lvPoints.Font, FontStyle.Bold);
            this.lvPoints.Items.Add(lvi);

            // Add pages and summary informations
            TimeSpan lastRemap = TimeSpan.Zero;

            foreach (var remap in remappingList)
            {
                AddSummaryForRemapping(remap, ref lastRemap);
            }

            this.columnHeader.Width = this.lvPoints.ClientSize.Width;
        }
Beispiel #2
0
        /// <summary>
        /// Updates information in summary page.
        /// </summary>
        /// <param name="remappingList">List of remappings</param>
        private void UpdateSummaryInformation(ICollection <RemappingResult> remappingList)
        {
            TimeSpan baseDuration = m_plan.GetTotalTime(m_character.After(m_plan.ChosenImplantSet), false);

            lvPoints.Items.Clear();

            // Add global informations
            ListViewGroup globalGroup = new ListViewGroup("Global informations");

            lvPoints.Groups.Add(globalGroup);

            TimeSpan savedTime = remappingList.Aggregate(TimeSpan.Zero,
                                                         (current, remap) =>
                                                         current.Add(remap.BaseDuration.Subtract(remap.BestDuration)));

            lvPoints.Items.Add(new ListViewItem(
                                   $"Current time : {baseDuration.ToDescriptiveText(DescriptiveTextOptions.IncludeCommas)}", globalGroup));

            if (savedTime != TimeSpan.Zero)
            {
                lvPoints.Items.Add(
                    new ListViewItem(
                        $"Optimized time : {baseDuration.Subtract(savedTime).ToDescriptiveText(DescriptiveTextOptions.IncludeCommas)}",
                        globalGroup));

                if (savedTime < TimeSpan.Zero)
                {
                    ListViewItem savedTimeItem = lvPoints.Items.Add(
                        new ListViewItem(
                            $"{(-savedTime).ToDescriptiveText(DescriptiveTextOptions.IncludeCommas)} slower than current.",
                            globalGroup));
                    savedTimeItem.ForeColor = Color.DarkRed;
                }
                else
                {
                    ListViewItem savedTimeItem = lvPoints.Items.Add(
                        new ListViewItem(
                            $"{savedTime.ToDescriptiveText(DescriptiveTextOptions.IncludeCommas)} better than current.",
                            globalGroup));
                    savedTimeItem.ForeColor = Color.DarkGreen;
                }
            }
            else
            {
                lvPoints.Items.Add(new ListViewItem("Your attributes are already optimal.", globalGroup));
            }

            // Notify plan updated
            ListViewItem lvi = new ListViewItem("Your plan has been updated.", globalGroup)
            {
                Font = FontFactory.GetFont(lvPoints.Font, FontStyle.Bold)
            };

            lvPoints.Items.Add(lvi);

            // Add pages and summary informations
            TimeSpan lastRemap = TimeSpan.Zero;

            foreach (RemappingResult remap in remappingList)
            {
                AddSummaryForRemapping(remap, ref lastRemap);
            }

            columnHeader.Width = lvPoints.ClientSize.Width;
        }