BudgetAnalyser.Engine.Services.DashboardService.CreateNewSurprisePaymentMonitorWidget C# (CSharp) Method

CreateNewSurprisePaymentMonitorWidget() public method

public CreateNewSurprisePaymentMonitorWidget ( string bucketCode, System.DateTime paymentDate, WeeklyOrFortnightly frequency ) : Widget
bucketCode string
paymentDate System.DateTime
frequency WeeklyOrFortnightly
return BudgetAnalyser.Engine.Widgets.Widget
        public Widget CreateNewSurprisePaymentMonitorWidget(string bucketCode, DateTime paymentDate,
                                                            WeeklyOrFortnightly frequency)
        {
            if (string.IsNullOrWhiteSpace(bucketCode))
            {
                throw new ArgumentNullException(nameof(bucketCode));
            }

            if (paymentDate == DateTime.MinValue)
            {
                throw new ArgumentException("Payment date is not set.", nameof(paymentDate));
            }

            var bucket = this.bucketRepository.GetByCode(bucketCode);
            if (bucket == null)
            {
                throw new ArgumentException(
                    string.Format(CultureInfo.CurrentCulture, "No Bucket with code {0} exists", bucketCode),
                    nameof(bucketCode));
            }

            var widget = this.widgetService.Create(typeof(SurprisePaymentWidget).FullName, bucket.Code);
            var paymentWidget = (SurprisePaymentWidget) widget;
            paymentWidget.StartPaymentDate = paymentDate;
            paymentWidget.Frequency = frequency;
            return UpdateWidgetCollectionWithNewAddition((Widget) widget);
        }