private ReactiveCommand GetCommandRemovePlanReceiptOrder(IObservable <bool> canExecute = null)
        {
            var command = new ReactiveCommand(canExecute);

            command.RegisterAsync(_ =>
                                  _messenger.AskToObservable(
                                      "Удалить?",
                                      MessageBoxButton.YesNo,
                                      result => {
                if (result == MessageBoxResult.Yes)
                {
                    PlanReceiptOrderLiteDto removingItem = SelectedPlanReceiptOrder;

                    if (removingItem == null)
                    {
                        return;
                    }

                    RemovePlanReceiptOrder(removingItem.Rn);
                    PlanReceiptOrderFilterViewModel.Result.Remove(removingItem);
                }
            })).Subscribe();

            command.ThrownExceptions.Subscribe(OnError);
            command.IsExecuting.Subscribe(isExecuting => IsBusy = isExecuting);
            return(command);
        }
        private void LetterIsComeback(UpdatedEntityMessage <PlanReceiptOrder> updatedEntityMessage)
        {
            var target = this.GetTarget();

            if (target == null)
            {
                return;
            }

            int index = 0;
            PlanReceiptOrderLiteDto oldItem =
                target.PlanReceiptOrderFilterViewModel.Result.FirstOrDefault(
                    x => x.Rn == updatedEntityMessage.Entity.Rn);
            PlanReceiptOrderLiteDto insetingItem = GetDto(updatedEntityMessage.Entity.Rn)
                                                   ?? updatedEntityMessage.Entity.MapTo <PlanReceiptOrderLiteDto>();

            if (oldItem != null)
            {
                index = target.PlanReceiptOrderFilterViewModel.Result.IndexOf(oldItem);
                target.PlanReceiptOrderFilterViewModel.Result.Remove(oldItem);
            }

            target.PlanReceiptOrderFilterViewModel.Result.Insert(index, insetingItem);
            target.SelectedPlanReceiptOrder = insetingItem;
        }
Пример #3
0
        private void OnSelectedPlanReceiptOrder(PlanReceiptOrderLiteDto planReceiptOrder)
        {
            if (planReceiptOrder == null)
            {
                if (PlanCertificateFilterViewModel.Result != null)
                {
                    PlanCertificateFilterViewModel.Result.Clear();
                }

                return;
            }

            PlanCertificateFilterViewModel.Filter.RnPlanReceiptOrder = planReceiptOrder.Rn;
            PlanCertificateFilterViewModel.InvokeCommand.Execute(null);
        }
        private void LetterIsComeback(AddedEntityMessage <PlanReceiptOrder> addedEntityMessage)
        {
            var target = GetTarget();

            if (target == null)
            {
                return;
            }

            PlanReceiptOrderLiteDto insetingItem = GetDto(addedEntityMessage.Entity.Rn)
                                                   ?? addedEntityMessage.Entity.MapTo <PlanReceiptOrderLiteDto>();

            target.PlanReceiptOrderFilterViewModel.Result.Insert(0, insetingItem);
            target.SelectedPlanReceiptOrder = insetingItem;
        }