/// <inheritdoc />
        protected override void OnInitialize()
        {
            base.OnInitialize();
            DisplayName = Strings.CreateRevisionViewModel_DisplayName;

            var loadingTask = Task.Run(async delegate
            {
                try
                {
                    _currentRevisions = await _productServiceModel.GetProducts(new ProductQuery
                    {
                        Identifier     = Product.Identifier,
                        RevisionFilter = RevisionFilter.All
                    }).ConfigureAwait(false);

                    await Execute.OnUIThreadAsync(() => NewRevision = (short)(_currentRevisions.Max(pr => pr.Revision) + 1));
                }
                catch (Exception e)
                {
                    await Execute.OnUIThreadAsync(() => ErrorMessage = e.Message);
                }
            });

            TaskNotifier = new TaskNotifier(loadingTask);
        }
Exemplo n.º 2
0
        protected override void OnInitialize()
        {
            base.OnInitialize();
            DisplayName = Strings.RevisionsViewModel_DisplayName;

            var loadingTask = Task.Run(async delegate
            {
                try
                {
                    var revisions = await _productServiceModel.GetProducts(new ProductQuery
                    {
                        Identifier     = Product.Identifier,
                        RevisionFilter = RevisionFilter.All
                    }).ConfigureAwait(false);

                    var vms = revisions.Select(r => new ProductInfoViewModel(r)).ToArray();
                    await Execute.OnUIThreadAsync(() => Revisions.AddRange(vms));
                }
                catch (Exception e)
                {
                    await Execute.OnUIThreadAsync(() => ErrorMessage = e.Message);
                }

                finally
                {
                    await Execute.OnUIThreadAsync(CommandManager.InvalidateRequerySuggested);
                }
            });

            TaskNotifier = new TaskNotifier(loadingTask);
        }
        /// <inheritdoc />
        protected override void OnInitialize()
        {
            DisplayName = Strings.RemoveProductViewModel_DisplayName;

            var loadingTask = Task.Run(async delegate
            {
                var affectedProducts = await _productServiceModel.GetProducts(new ProductQuery
                {
                    Identifier     = ProductToRemove.Identifier,
                    Revision       = ProductToRemove.Revision,
                    RevisionFilter = RevisionFilter.Specific,
                    Selector       = Selector.Parent
                }).ConfigureAwait(false);

                var vms = affectedProducts.Select(r => new ProductInfoViewModel(r)).ToArray();
                await Execute.OnUIThreadAsync(delegate
                {
                    AffectedProducts.AddRange(vms);
                    ErrorMessage = Strings.RemoveProductViewModel_NonDeletableHint;
                });
            });

            TaskNotifier = new TaskNotifier(loadingTask);
        }