Exemplo n.º 1
0
        private void OnNewCounterpartyPageClosed(object sender, PageClosedEventArgs e)
        {
            if (e.CloseSource == CloseSource.Save)
            {
                Counterparty client = ((sender as TdiTabPage).TdiTab as CounterpartyDlg).Counterparty;

                CounterpartyOrderViewModel model =
                    new CounterpartyOrderViewModel(
                        client,
                        UnitOfWorkFactory.GetDefaultFactory,
                        _tdiNavigation,
                        _routedListRepository,
                        MangoManager,
                        _orderParametersProvider,
                        _employeeJournalFactory,
                        _counterpartyJournalFactory,
                        _nomenclatureRepository,
                        _parametersProvider,
                        _deliveryRulesParametersProvider);

                CounterpartyOrdersViewModels.Add(model);
                currentCounterparty = client;
                MangoManager.AddCounterpartyToCall(client.Id);
                CounterpartyOrdersModelsUpdateEvent();
            }
            (sender as IPage).PageClosed -= OnNewCounterpartyPageClosed;
        }
Exemplo n.º 2
0
        void ExistingCounterparty_PageClosed(object sender, QS.Project.Journal.JournalSelectedNodesEventArgs e)
        {
            var          counterpartyNode = e.SelectedNodes.First() as CounterpartyJournalNode;
            Counterparty client           = _uow.GetById <Counterparty>(counterpartyNode.Id);

            if (!CounterpartyOrdersViewModels.Any(c => c.Client.Id == client.Id))
            {
                if (_interactiveService.Question($"Добавить телефон к контрагенту {client.Name} ?", "Телефон контрагента"))
                {
                    client.Phones.Add(ActiveCall.Phone);
                    _uow.Save <Counterparty>(client);
                    _uow.Commit();
                }

                CounterpartyOrderViewModel model =
                    new CounterpartyOrderViewModel(
                        client, UnitOfWorkFactory.GetDefaultFactory, _tdiNavigation, _routedListRepository, MangoManager,
                        _orderParametersProvider, _employeeJournalFactory, _counterpartyJournalFactory, _nomenclatureRepository,
                        _parametersProvider, _deliveryRulesParametersProvider);

                CounterpartyOrdersViewModels.Add(model);
                currentCounterparty = client;
                MangoManager.AddCounterpartyToCall(client.Id);
                CounterpartyOrdersModelsUpdateEvent();
            }
        }
Exemplo n.º 3
0
        public CounterpartyOrderViewModel(Counterparty client,
                                          IUnitOfWorkFactory unitOfWorkFactory,
                                          ITdiCompatibilityNavigation tdinavigation,
                                          IRouteListRepository routedListRepository,
                                          MangoManager mangoManager,
                                          IOrderParametersProvider orderParametersProvider,
                                          IEmployeeJournalFactory employeeJournalFactory,
                                          ICounterpartyJournalFactory counterpartyJournalFactory,
                                          INomenclatureRepository nomenclatureRepository,
                                          IParametersProvider parametersProvider,
                                          int count = 5)
        {
            Client                      = client;
            tdiNavigation               = tdinavigation;
            _routedListRepository       = routedListRepository;
            MangoManager                = mangoManager;
            _orderParametersProvider    = orderParametersProvider ?? throw new ArgumentNullException(nameof(orderParametersProvider));
            _employeeJournalFactory     = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _counterpartyJournalFactory = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            _nomenclatureRepository     = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            _parametersProvider         = parametersProvider ?? throw new ArgumentNullException(nameof(parametersProvider));
            UoW         = unitOfWorkFactory.CreateWithoutRoot();
            LatestOrder = _orderRepository.GetLatestOrdersForCounterparty(UoW, client, count).ToList();

            RefreshOrders = _RefreshOrders;
            NotifyConfiguration.Instance.BatchSubscribe(_RefreshCounterparty)
            .IfEntity <Counterparty>()
            .AndWhere(c => c.Id == client.Id)
            .Or.IfEntity <DeliveryPoint>()
            .AndWhere(d => client.DeliveryPoints.Any(cd => cd.Id == d.Id));
        }
        void NewCounerpatry_PageClosed(object sender, PageClosedEventArgs e)
        {
            if (e.CloseSource == CloseSource.Save)
            {
                List <Counterparty> clients = new List <Counterparty>();
                Counterparty        client  = ((sender as TdiTabPage).TdiTab as CounterpartyDlg).Counterparty;
                client.Phones.Add(ActiveCall.Phone);
                clients.Add(client);
                _uow.Save <Counterparty>(client);

                CounterpartyOrderViewModel model =
                    new CounterpartyOrderViewModel(
                        client,
                        UnitOfWorkFactory.GetDefaultFactory,
                        _tdiNavigation,
                        _routedListRepository,
                        MangoManager,
                        _orderParametersProvider,
                        _employeeJournalFactory,
                        _counterpartyJournalFactory,
                        _nomenclatureRepository,
                        _parametersProvider);

                CounterpartyOrdersModels.Add(model);
                currentCounterparty = client;
                MangoManager.AddCounterpartyToCall(client.Id);
                CounterpartyOrdersModelsUpdateEvent();
            }
            (sender as IPage).PageClosed -= NewCounerpatry_PageClosed;
        }
        public CounterpartyTalkViewModel(
            INavigationManager navigation,
            ITdiCompatibilityNavigation tdinavigation,
            IUnitOfWorkFactory unitOfWorkFactory,
            RouteListRepository routedListRepository,
            IInteractiveService interactiveService,
            MangoManager manager) : base(navigation, manager)
        {
            this.NavigationManager = navigation ?? throw new ArgumentNullException(nameof(navigation));
            this.tdiNavigation     = tdinavigation ?? throw new ArgumentNullException(nameof(navigation));

            this.routedListRepository = routedListRepository;
            this.interactiveService   = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            UoW = unitOfWorkFactory.CreateWithoutRoot();

            if (ActiveCall.CounterpartyIds.Any())
            {
                var clients = UoW.GetById <Counterparty>(ActiveCall.CounterpartyIds);
                foreach (Counterparty client in clients)
                {
                    CounterpartyOrderViewModel model = new CounterpartyOrderViewModel(client, unitOfWorkFactory, tdinavigation, routedListRepository, this.MangoManager);
                    CounterpartyOrdersModels.Add(model);
                }
                currentCounterparty = CounterpartyOrdersModels.FirstOrDefault().Client;
            }
            else
            {
                throw new InvalidProgramException("Открыт диалог разговора с имеющимся контрагентом, но ни одного id контрагента не найдено.");
            }
        }
Exemplo n.º 6
0
 public UnknowTalkViewModel(IUnitOfWorkFactory unitOfWorkFactory,
                            ITdiCompatibilityNavigation navigation,
                            IInteractiveQuestion interactive,
                            MangoManager manager) : base(navigation, manager)
 {
     this.tdiNavigation = navigation ?? throw new ArgumentNullException(nameof(navigation));
     this.interactive   = interactive ?? throw new ArgumentNullException(nameof(interactive));
     UoW = unitOfWorkFactory.CreateWithoutRoot();
 }
        public SubscriberSelectionViewModel(INavigationManager navigation,
                                            MangoManager manager,
                                            DialogType dialogType) : base(navigation)
        {
            this.dialogType = dialogType;
            Manager         = manager;

            SearchTableEntities = Manager.GetPhoneBook().Select(x => new SearchTableEntity(x)).ToList();

            Title = dialogType == DialogType.Telephone ? "Вызов абонента" : "Перевод звонка на абонента";
        }
Exemplo n.º 8
0
 public TalkViewModelBase(INavigationManager navigation, MangoManager manager) : base(navigation)
 {
     this.MangoManager        = manager ?? throw new ArgumentNullException(nameof(manager));
     ActiveCall               = MangoManager.CurrentTalk ?? MangoManager.CurrentHold;
     manager.PropertyChanged += Manager_PropertyChanged;
     SetTitle();
     IsModal                     = false;
     WindowPosition              = WindowGravity.RightBottom;
     EnableMinimizeMaximize      = true;
     ActiveCall.PropertyChanged += ActiveCall_PropertyChanged;
 }
Exemplo n.º 9
0
        public CounterpartyTalkViewModel(
            INavigationManager navigation,
            ITdiCompatibilityNavigation tdinavigation,
            IUnitOfWorkFactory unitOfWorkFactory,
            IRouteListRepository routedListRepository,
            IInteractiveService interactiveService,
            IOrderParametersProvider orderParametersProvider,
            MangoManager manager,
            IEmployeeJournalFactory employeeJournalFactory,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            INomenclatureRepository nomenclatureRepository,
            IOrderRepository orderRepository,
            IParametersProvider parametersProvider,
            IDeliveryRulesParametersProvider deliveryRulesParametersProvider,
            IDeliveryPointJournalFactory deliveryPointJournalFactory) : base(navigation, manager)
        {
            NavigationManager = navigation ?? throw new ArgumentNullException(nameof(navigation));
            _tdiNavigation    = tdinavigation ?? throw new ArgumentNullException(nameof(navigation));

            _routedListRepository            = routedListRepository;
            _interactiveService              = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            _orderParametersProvider         = orderParametersProvider ?? throw new ArgumentNullException(nameof(orderParametersProvider));
            _employeeJournalFactory          = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _counterpartyJournalFactory      = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            _nomenclatureRepository          = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            _orderRepository                 = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository));
            _parametersProvider              = parametersProvider ?? throw new ArgumentNullException(nameof(parametersProvider));
            _deliveryRulesParametersProvider = deliveryRulesParametersProvider ?? throw new ArgumentNullException(nameof(deliveryRulesParametersProvider));
            _uow = unitOfWorkFactory.CreateWithoutRoot();
            _deliveryPointJournalFactory =
                deliveryPointJournalFactory ?? throw new ArgumentNullException(nameof(deliveryPointJournalFactory));

            if (ActiveCall.CounterpartyIds.Any())
            {
                var clients = _uow.GetById <Counterparty>(ActiveCall.CounterpartyIds);

                foreach (Counterparty client in clients)
                {
                    CounterpartyOrderViewModel model = new CounterpartyOrderViewModel(
                        client, unitOfWorkFactory, tdinavigation, routedListRepository, MangoManager, _orderParametersProvider,
                        _employeeJournalFactory, _counterpartyJournalFactory, _nomenclatureRepository, _parametersProvider,
                        _deliveryRulesParametersProvider);
                    CounterpartyOrdersViewModels.Add(model);
                }

                currentCounterparty = CounterpartyOrdersViewModels.FirstOrDefault().Client;
            }
            else
            {
                throw new InvalidProgramException("Открыт диалог разговора с имеющимся контрагентом, но ни одного id контрагента не найдено.");
            }
        }
Exemplo n.º 10
0
 public UnknowTalkViewModel(IUnitOfWorkFactory unitOfWorkFactory,
                            ITdiCompatibilityNavigation navigation,
                            IInteractiveQuestion interactive,
                            MangoManager manager,
                            IEmployeeJournalFactory employeeJournalFactory,
                            ICounterpartyJournalFactory counterpartyJournalFactory,
                            INomenclatureRepository nomenclatureRepository) : base(navigation, manager)
 {
     _tdiNavigation              = navigation ?? throw new ArgumentNullException(nameof(navigation));
     _interactive                = interactive ?? throw new ArgumentNullException(nameof(interactive));
     _employeeJournalFactory     = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
     _counterpartyJournalFactory = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
     _nomenclatureRepository     = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
     _uow = unitOfWorkFactory.CreateWithoutRoot();
 }
Exemplo n.º 11
0
 public IncomingCallViewModel(INavigationManager navigation,
                              MangoManager manager) : base(navigation)
 {
     this.MangoManager = manager ?? throw new ArgumentNullException(nameof(manager));
     IsModal           = false;
     WindowPosition    = WindowGravity.RightBottom;
     if (MangoManager.IsOutgoing)
     {
         Title = "Исходящий звонок";
     }
     else
     {
         Title = "Входящий звонок";
     }
 }
Exemplo n.º 12
0
 void NewCounerpatry_PageClosed(object sender, PageClosedEventArgs e)
 {
     if (e.CloseSource == CloseSource.Save)
     {
         Counterparty client = ((sender as TdiTabPage).TdiTab as CounterpartyDlg).Counterparty;
         if (client != null)
         {
             this.Close(true, CloseSource.External);
             MangoManager.AddCounterpartyToCall(client.Id);
         }
         else
         {
             throw new Exception("При сохранении контрагента произошла ошибка, попробуйте снова." + "\n Сообщение для поддержки : UnknowTalkViewModel.NewCounterparty_PageClose()");
         }
     }
 }
Exemplo n.º 13
0
 void NewCounerpatry_PageClosed(object sender, PageClosedEventArgs e)
 {
     if (e.CloseSource == CloseSource.Save)
     {
         List <Counterparty> clients = new List <Counterparty>();
         Counterparty        client  = ((sender as TdiTabPage).TdiTab as CounterpartyDlg).Counterparty;
         client.Phones.Add(ActiveCall.Phone);
         clients.Add(client);
         UoW.Save <Counterparty>(client);
         CounterpartyOrderViewModel model = new CounterpartyOrderViewModel(client, UnitOfWorkFactory.GetDefaultFactory, tdiNavigation, routedListRepository, this.MangoManager);
         CounterpartyOrdersModels.Add(model);
         currentCounterparty = client;
         MangoManager.AddCounterpartyToCall(client.Id);
         CounterpartyOrdersModelsUpdateEvent();
     }
     (sender as IPage).PageClosed -= NewCounerpatry_PageClosed;
 }
Exemplo n.º 14
0
        void ExistingCounterparty_PageClosed(object sender, QS.Project.Journal.JournalSelectedNodesEventArgs e)
        {
            var          counterpartyNode = e.SelectedNodes.First() as CounterpartyJournalNode;
            Counterparty client           = _uow.GetById <Counterparty>(counterpartyNode.Id);

            if (_interactive.Question($"Добавить телефон к контрагенту {client.Name} ?", "Телефон контрагента"))
            {
                if (!client.Phones.Any(phone => phone.DigitsNumber == ActiveCall.Phone.DigitsNumber))
                {
                    client.Phones.Add(ActiveCall.Phone);
                    _uow.Save <Counterparty>(client);
                    _uow.Commit();
                }
            }
            this.Close(true, CloseSource.External);
            MangoManager.AddCounterpartyToCall(client.Id);
        }
Exemplo n.º 15
0
        void ExistingCounterparty_PageClosed(object sender, QS.Project.Journal.JournalSelectedNodesEventArgs e)
        {
            var          counterpartyNode = e.SelectedNodes.First() as CounterpartyJournalNode;
            Counterparty client           = UoW.GetById <Counterparty>(counterpartyNode.Id);

            if (!CounterpartyOrdersModels.Any(c => c.Client.Id == client.Id))
            {
                if (interactiveService.Question($"Добавить телефон к контрагенту {client.Name} ?", "Телефон контрагента"))
                {
                    client.Phones.Add(ActiveCall.Phone);
                    UoW.Save <Counterparty>(client);
                    UoW.Commit();
                }
                CounterpartyOrderViewModel model = new CounterpartyOrderViewModel(client, UnitOfWorkFactory.GetDefaultFactory, tdiNavigation, routedListRepository, this.MangoManager);
                CounterpartyOrdersModels.Add(model);
                currentCounterparty = client;
                MangoManager.AddCounterpartyToCall(client.Id);
                CounterpartyOrdersModelsUpdateEvent();
            }
        }
Exemplo n.º 16
0
        public CounterpartyOrderViewModel(Counterparty client,
                                          IUnitOfWorkFactory unitOfWorkFactory,
                                          ITdiCompatibilityNavigation tdinavigation,
                                          RouteListRepository routedListRepository,
                                          MangoManager mangoManager,
                                          int count = 5)
            : base()
        {
            this.Client               = client;
            this.tdiNavigation        = tdinavigation;
            this.routedListRepository = routedListRepository;
            this.MangoManager         = mangoManager;
            UoW = unitOfWorkFactory.CreateWithoutRoot();
            OrderSingletonRepository orderRepos = OrderSingletonRepository.GetInstance();

            LatestOrder = orderRepos.GetLatestOrdersForCounterparty(UoW, client, count).ToList();

            RefreshOrders = _RefreshOrders;
            NotifyConfiguration.Instance.BatchSubscribe(_RefreshCounterparty)
            .IfEntity <Counterparty>()
            .AndWhere(c => c.Id == client.Id)
            .Or.IfEntity <DeliveryPoint>()
            .AndWhere(d => client.DeliveryPoints.Any(cd => cd.Id == d.Id));
        }
Exemplo n.º 17
0
 public InternalTalkViewModel(
     ITdiCompatibilityNavigation navigation,
     MangoManager manager) : base(navigation, manager)
 {
 }