public PaymentFromBankClientController(
     IPaymentItemsRepository paymentItemsRepository,
     IOrderRepository orderRepository,
     IPaymentsRepository paymentsRepository)
 {
     _paymentItemsRepository = paymentItemsRepository ?? throw new ArgumentNullException(nameof(paymentItemsRepository));
     _orderRepository        = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository));
     _paymentsRepository     = paymentsRepository ?? throw new ArgumentNullException(nameof(paymentsRepository));
 }
Ejemplo n.º 2
0
        public ManualPaymentMatchingViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory uowFactory,
            ICommonServices commonServices,
            IOrderRepository orderRepository,
            IPaymentItemsRepository paymentItemsRepository,
            IPaymentsRepository paymentsRepository,
            IDialogsFactory dialogsFactory) : base(uowBuilder, uowFactory, commonServices)
        {
            _orderRepository        = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository));
            _paymentItemsRepository = paymentItemsRepository ?? throw new ArgumentNullException(nameof(paymentItemsRepository));
            _paymentsRepository     = paymentsRepository ?? throw new ArgumentNullException(nameof(paymentsRepository));
            _dialogsFactory         = dialogsFactory ?? throw new ArgumentNullException(nameof(dialogsFactory));

            if (uowBuilder.IsNewEntity)
            {
                throw new AbortCreatingPageException(
                          "Невозможно создать новую загрузку выписки из текущего диалога, необходимо использовать диалоги создания",
                          _error);
            }

            var curEditor = Entity.CurrentEditorUser;

            if (curEditor != null)
            {
                throw new AbortCreatingPageException(
                          $"Невозможно открыть диалог ручного распределения платежа №{Entity.PaymentNum}," +
                          $" т.к. он уже открыт пользователем: {curEditor.Name}",
                          _error);
            }

            UpdateCurrentEditor();
            TabName = "Ручное распределение платежей";

            //Поиск
            Search           = new SearchViewModel();
            _searchHelper    = new SearchHelper(Search);
            Search.OnSearch += (sender, args) => UpdateNodes();

            CanRevertPayFromOrderPermission = CommonServices.CurrentPermissionService.ValidatePresetPermission("can_revert_pay_from_order");

            GetLastBalance();
            UpdateSumToAllocate();
            UpdateCurrentBalance();
            CreateCommands();
            GetCounterpartyDebt();
            ConfigureEntityChangingRelations();
            UpdateNodes();

            if (HasPaymentItems)
            {
                UpdateAllocatedNodes();
            }

            TabClosed += OnTabClosed;
        }