Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
        /// <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();
            }
        }