private void OnBudgetBucketChosenForNewBucketMonitor(object sender, BudgetBucketChosenEventArgs args) { if (args.CorrelationId != CorrelationId) { return; } CorrelationId = Guid.NewGuid(); var bucket = this.chooseBudgetBucketController.Selected; if (bucket == null) { // Cancelled by user. return; } var widget = this.dashboardService.CreateNewBucketMonitorWidget(bucket.Code); if (widget == null) { this.uiContext.UserPrompts.MessageBox.Show("New Budget Bucket Widget", "This Budget Bucket Monitor Widget for [{0}] already exists.", bucket.Code); } }
private void OnBudgetBucketMonitorWidgetAdded(object sender, BudgetBucketChosenEventArgs args) { if (args.CorrelationId != CorrelationId) { return; } CorrelationId = Guid.NewGuid(); BudgetBucket bucket = this.chooseBudgetBucketController.Selected; if (bucket == null) { // Cancelled by user. return; } if (WidgetGroups.OfType<BudgetBucketMonitorWidget>().Any(w => w.BucketCode == bucket.Code)) { this.messageBox.Show("New Budget Bucket Widget", "This Budget Bucket Monitor Widget for [{0}] already exists.", bucket.Code); return; } IMultiInstanceWidget widget = this.widgetRepository.Create(typeof(BudgetBucketMonitorWidget).FullName, bucket.Code); var baseWidget = (Widget)widget; WidgetGroup widgetGroup = WidgetGroups.FirstOrDefault(group => group.Heading == baseWidget.Category); if (widgetGroup == null) { widgetGroup = new WidgetGroup { Heading = baseWidget.Category, Widgets = new ObservableCollection<Widget>() }; WidgetGroups.Add(widgetGroup); } widgetGroup.Widgets.Add(baseWidget); UpdateWidget(baseWidget); }