private void AddNewItem(object parameter) { if (AddNewItemCommand != null) { AddNewItemCommand.Execute(parameter); } else { var list = ItemsSource as IList; var newItem = Activator.CreateInstance(GetEnumerableGenericArgument(ItemsSource.GetType())); list.Add(newItem); } UpdateItemsCount(); GoToLastItem(null); }
/// <summary> /// Called when [new context report]. /// </summary> /// <param name="reportView">The report view.</param> private async void OnNewContextReport(Report reportView) { var errorOccurred = false; var progressService = new ProgressService(); progressService.SetProgress("Creating report", 0, false, true); //await Task.Delay(500); var report = new Report(reportView.SourceTemplate); report.Name = "New report based on " + report.Name; report.IsDefaultReport = false; var operationComplete = await progressService.Execute(() => { AddNewItemCommand.Execute(report); }, opResult => { progressService.SetProgress("Completed", 100, true, false); if (opResult.Status && opResult.Exception != null) { errorOccurred = true; LogEntityError(opResult.Exception.GetBaseException(), typeof(Report), Title); } else { errorOccurred = false; } }, new CancellationToken()); if (operationComplete && !errorOccurred) { OnLoad(); OnNavigateToDetails(report); } }
/// <summary> /// Called when save is clicked to save the report changes. /// </summary> protected override async void OnSave() { base.OnSave(); if (HasErrors) { return; } if (!(Audiences[1].IsSelected || Audiences[2].IsSelected)) { MessageBox.Show( "Please enter a report type, report name, and recommended audience(s) to add a new report."); return; } try { var errorOccurred = false; var progressService = new ProgressService(); progressService.SetProgress("Creating report", 0, false, true); //await Task.Delay(500); var operationComplete = await progressService.Execute(() => { //Get all selected enum values but the default/non-selected value of zero "0" var selectedAudiences = Audiences.Where(a => a.IsSelected && a.Value != 0).Select(a => a.Enum).ToList(); //.Aggregate<AudienceModel, uint>(0, (current, a) => current + (uint)a.Value); var factory = new ReportManifestFactory(); var manifest = factory.InstalledManifests.FirstOrDefault(x => x.Name == ReportType); var report = new Report(manifest) { Name = Title }; //, Audiences = selectedAudiences.ToList() AddNewItemCommand.Execute(report); }, opResult => { progressService.SetProgress("Completed", 100, true, false); if (opResult.Status && opResult.Exception != null) { errorOccurred = true; LogEntityError(opResult.Exception.GetBaseException(), typeof(Report), Title); } else { errorOccurred = false; } }, new CancellationToken()); if (operationComplete && !errorOccurred) { OnLoad(); Notify(String.Format("New report {0} has been added", Title)); } } catch (Exception exc) { LogEntityError(exc, typeof(Report), Title); } finally { Reset(); } }