BudgetAnalyser.Engine.Widgets.FixedBudgetMonitorWidget.Update C# (CSharp) Метод

Update() публичный Метод

Updates the widget with new input.
public Update ( ) : void
Результат void
        public override void Update([NotNull] params object[] input)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            if (!ValidateUpdateInput(input))
            {
                ToolTip = this.disabledToolTip;
                Enabled = false;
                return;
            }

            Statement = (StatementModel) input[0];
            this.bucketRepository = (IBudgetBucketRepository) input[1];

            if (!this.bucketRepository.IsValidCode(BucketCode))
            {
                ToolTip = this.disabledToolTip;
                Enabled = false;
                return;
            }

            if (Statement == null)
            {
                ToolTip = this.disabledToolTip;
                Enabled = false;
                return;
            }

            Enabled = true;
            var bucket = (FixedBudgetProjectBucket) this.bucketRepository.GetByCode(BucketCode);
            var totalBudget = bucket.FixedBudgetAmount;
            Maximum = Convert.ToDouble(totalBudget);

            // Debit transactions are negative so normally the total spend will be a negative number.
            var totalSpend =
                Statement.AllTransactions.Where(t => t.BudgetBucket != null && t.BudgetBucket.Code == BucketCode)
                    .Sum(t => t.Amount);
            var remainingBudget = totalBudget + totalSpend;

            Value = Convert.ToDouble(remainingBudget);
            ToolTip = string.Format(CultureInfo.CurrentCulture, this.remainingBudgetToolTip, bucket.Description,
                remainingBudget, totalSpend);
            DetailedText = string.Format(CultureInfo.CurrentCulture, "{0} Project", bucket.SubCode);

            if (remainingBudget < 0.1M * totalBudget)
            {
                ColourStyleName = WidgetWarningStyle;
            }
            else
            {
                ColourStyleName = this.standardStyle;
            }
        }
    }