Ejemplo n.º 1
0
 private void ExecuteAutomationCommand(string automationCommandName, string automationCommandValue, string nextCommandValue)
 {
     if (SelectedOrders.Any())
     {
         foreach (var selectedOrder in SelectedOrders.ToList())
         {
             _applicationState.NotifyEvent(RuleEventNames.AutomationCommandExecuted,
                                           new
             {
                 Ticket = SelectedTicket,
                 Order  = selectedOrder,
                 AutomationCommandName = automationCommandName,
                 CommandValue          = automationCommandValue,
                 NextCommandValue      = nextCommandValue
             });
         }
     }
     else
     {
         _applicationState.NotifyEvent(RuleEventNames.AutomationCommandExecuted,
                                       new
         {
             Ticket = SelectedTicket,
             AutomationCommandName = automationCommandName,
             CommandValue          = automationCommandValue,
             NextCommandValue      = nextCommandValue
         });
     }
     _ticketOrdersViewModel.SelectedTicket = SelectedTicket;
     ClearSelectedItems();
     ClearSelection = true;
 }
Ejemplo n.º 2
0
        private async void executeDeleteOrders()
        {
            var result = await _orderManagerService.RemoveOrdersAsync(SelectedOrders).ConfigureAwait(false);

            foreach (OrderVm order in SelectedOrders.ToList())
            {
                Orders.Remove(order);
            }
            _eventAggregator.PublishOnUIThread(new StatusEvent(this, "Order(s) deleted (" + result + ")"));
        }
Ejemplo n.º 3
0
        public IEnumerable <IResult> Move()
        {
            if (!CanMove)
            {
                return(null);
            }

            if (!Confirm("Внимание! Перемещаемые заявки будут объединены с текущими заявками.\r\n\r\nПеренести выбранные заявки?"))
            {
                return(null);
            }

            var ids = SelectedOrders.Where(o => o.Address == Address).Select(o => o.Id).ToArray();

            return(Run(new UnfreezeCommand <Order>(ids, AddressToMove)));
        }
Ejemplo n.º 4
0
        public IEnumerable <IResult> Unfreeze()
        {
            if (!CanUnfreeze)
            {
                return(null);
            }

            if (!Confirm("Внимание! \"Размороженные\" заявки будут объединены с текущими заявками.\r\n\r\n\"Разморозить\" выбранные заявки?"))
            {
                return(null);
            }

            var ids = SelectedOrders.Where(o => o.Frozen).Select(o => o.Id).ToArray();

            return(Run(new UnfreezeCommand <Order>(ids)));
        }
Ejemplo n.º 5
0
        public void Delete()
        {
            if (!CanDelete)
            {
                return;
            }

            if (!Confirm("Удалить выбранные заявки?"))
            {
                return;
            }

            if (IsCurrentSelected)
            {
                foreach (var selected in SelectedOrders.ToArray())
                {
                    DeleteOrder(selected);
                }
            }
            else if (IsSentSelected)
            {
                foreach (var selected in SelectedSentOrders.ToArray())
                {
                    Log.Info($"Удаление отправленного заказа {selected.DisplayId} дата отправки: {selected.SentOn}" +
                             $" прайс-лист: {selected.SafePrice?.Name}" +
                             $" позиций: {selected.LinesCount}");
                    //в замыкании нельзя использовать переменную итератора
                    var order = selected;
                    Env.Query(s => s.Delete(order)).LogResult();
                    SentOrders.Remove(selected);
                }
            }
            else if (IsDeletedSelected)
            {
                foreach (var selected in SelectedDeletedOrders.ToArray())
                {
                    Log.Info($"Удаление текущего заказа {selected.DisplayId} из корзины дата создания: {selected.CreatedOn}" +
                             $" прайс-лист: {selected.SafePrice?.Name}" +
                             $" позиций: {selected.LinesCount}");
                    var order = selected;
                    Env.Query(s => s.Delete(order)).LogResult();
                    DeletedOrders.Remove(selected);
                }
            }
        }
Ejemplo n.º 6
0
        public void Freeze()
        {
            if (!CanFreeze)
            {
                return;
            }

            if (!Confirm("\"Заморозить\" выбранные заявки?"))
            {
                return;
            }

            foreach (var selectedOrder in SelectedOrders)
            {
                selectedOrder.Frozen = true;
            }
            Log.Info($"Заморожены заявки {SelectedOrders.Implode(x => x.Id)}");
        }
Ejemplo n.º 7
0
        private void OnExecuteAutomationCommand(CommandContainerButton obj)
        {
            obj.NextValue();
            if (!string.IsNullOrEmpty(obj.CommandContainer.AutomationCommand.Values) && !obj.CommandContainer.AutomationCommand.ToggleValues)
            {
                obj.CommandContainer.AutomationCommand.PublishEvent(EventTopicNames.SelectAutomationCommandValue);
            }
            else
            {
                if (SelectedOrders.Any())
                {
                    foreach (var selectedOrder in SelectedOrders)
                    {
                        _applicationState.NotifyEvent(RuleEventNames.AutomationCommandExecuted, new
                        {
                            Ticket = SelectedTicket,
                            Order  = selectedOrder,
                            AutomationCommandName = obj.Name,
                            Value = obj.SelectedValue
                        });
                    }
                }
                else
                {
                    _applicationState.NotifyEvent(RuleEventNames.AutomationCommandExecuted, new
                    {
                        Ticket = SelectedTicket,
                        AutomationCommandName = obj.Name,
                        Value = obj.SelectedValue
                    });
                }

                _ticketOrdersViewModel.SelectedTicket = SelectedTicket;
                ClearSelectedItems();
                ClearSelection = true;
                RefreshVisuals();
                if (SelectedTicket != Ticket.Empty)
                {
                    EventServiceFactory.EventService.PublishEvent(EventTopicNames.RefreshSelectedTicket);
                }
            }
        }
Ejemplo n.º 8
0
 private bool CanMoveOrders(string arg)
 {
     if (SelectedTicket.IsLocked || SelectedTicket.IsClosed)
     {
         return(false);
     }
     if (!SelectedTicket.CanRemoveSelectedOrders(SelectedOrders))
     {
         return(false);
     }
     if (SelectedOrders.Any(x => x.Id == 0))
     {
         return(false);
     }
     if (SelectedOrders.Any(x => !x.Locked) && _userService.IsUserPermittedFor(PermissionNames.MoveUnlockedOrders))
     {
         return(true);
     }
     return(_userService.IsUserPermittedFor(PermissionNames.MoveOrders));
 }
Ejemplo n.º 9
0
 private bool CanShowOrderStatesExecute(OrderStateGroup arg)
 {
     if (!SelectedOrders.Any())
     {
         return(false);
     }
     if (!arg.DecreaseOrderInventory && !arg.IncreaseOrderInventory && SelectedOrders.Any(x => !x.Locked && !x.IsStateApplied(arg)))
     {
         return(false);
     }
     if (!arg.CalculateOrderPrice && !SelectedTicket.CanRemoveSelectedOrders(SelectedOrders))
     {
         return(false);
     }
     if (SelectedOrders.Any(x => !x.DecreaseInventory && !x.IsStateApplied(arg)))
     {
         return(false);
     }
     return(!arg.UnlocksOrder || !SelectedOrders.Any(x => x.Locked && x.OrderStateGroupId == arg.Id));
 }
Ejemplo n.º 10
0
        private void OnSelectedOrdersChanged(EventParameters <OrderViewModel> obj)
        {
            if (obj.Topic == EventTopicNames.SelectedOrdersChanged)
            {
                if (!obj.Value.Selected && !_ticketService.CanDeselectOrder(obj.Value.Model))
                {
                    obj.Value.ToggleSelection();
                    return;
                }

                if (ClearSelection)
                {
                    ClearSelection = false;
                    if (obj.Value != LastSelectedOrder)
                    {
                        ClearSelectedItems();
                        obj.Value.ToggleSelection();
                        return;
                    }
                }

                LastSelectedOrder = obj.Value.Selected ? obj.Value : null;
                if (!SelectedOrders.Any())
                {
                    LastSelectedOrder = null;
                }
                _ticketOrdersViewModel.UpdateLastSelectedOrder(LastSelectedOrder);

                RefreshSelectedItems();

                if (_applicationState.IsLandscape)
                {
                    var so = new SelectedOrdersData {
                        SelectedOrders = SelectedOrders, Ticket = SelectedTicket
                    };
                    OperationRequest <SelectedOrdersData> .Publish(so, EventTopicNames.DisplayTicketOrderDetails, EventTopicNames.ActivatePosView, "");
                }
            }
        }
Ejemplo n.º 11
0
        private void ExecuteAutomationCommand(AutomationCommand automationCommand, string selectedValue)
        {
            if (!string.IsNullOrEmpty(automationCommand.Values) && !automationCommand.ToggleValues)
            {
                automationCommand.PublishEvent(EventTopicNames.SelectAutomationCommandValue);
            }
            else
            {
                if (SelectedOrders.Any())
                {
                    foreach (var selectedOrder in SelectedOrders.ToList())
                    {
                        _applicationState.NotifyEvent(RuleEventNames.AutomationCommandExecuted,
                                                      new
                        {
                            Ticket = SelectedTicket,
                            Order  = selectedOrder,
                            AutomationCommandName = automationCommand.Name,
                            Value = selectedValue
                        });
                    }
                }
                else
                {
                    _applicationState.NotifyEvent(RuleEventNames.AutomationCommandExecuted,
                                                  new
                    {
                        Ticket = SelectedTicket,
                        AutomationCommandName = automationCommand.Name,
                        Value = selectedValue
                    });
                }

                _ticketOrdersViewModel.SelectedTicket = SelectedTicket;
                ClearSelectedItems();
                ClearSelection = true;
                RefreshVisuals();
            }
        }
Ejemplo n.º 12
0
        private void OnSelectedOrdersChanged(EventParameters <OrderViewModel> obj)
        {
            if (obj.Topic == EventTopicNames.SelectedOrdersChanged)
            {
                if (!obj.Value.Selected && !_ticketService.CanDeselectOrder(obj.Value.Model))
                {
                    obj.Value.ToggleSelection();
                    return;
                }

                if (ClearSelection)
                {
                    ClearSelection = false;
                    if (obj.Value != LastSelectedOrder)
                    {
                        ClearSelectedItems();
                        obj.Value.ToggleSelection();
                        return;
                    }
                }

                LastSelectedOrder = obj.Value.Selected ? obj.Value : null;
                if (!SelectedOrders.Any())
                {
                    LastSelectedOrder = null;
                }
                _ticketOrdersViewModel.UpdateLastSelectedOrder(LastSelectedOrder);

                RefreshSelectedItems();

                var so = new SelectedOrdersData {
                    SelectedOrders = SelectedOrders, Ticket = SelectedTicket
                };
                so.PublishEvent(EventTopicNames.SelectedOrdersChanged);
            }
        }
Ejemplo n.º 13
0
        public async void Handle(AddOrdersEvent e)
        {
            await Activate().ConfigureAwait(false);

            var orders = new List <Order>();

            foreach (InvType item in e.Items)
            {
                var order = new Order();
                order.AutoProcess = true;
                order.TypeId      = item.TypeId;
                order.InvType     = item;
                order.IsBuyOrder  = e.BuyOrder;
                order.IsSellOrder = e.SellOrder;
                item.Orders.Add(order);
                orders.Add(order);
            }
            var orderViewModels = orders.Select(f => new OrderVm(f)).ToList();
            await _orderManagerService.LoadMarketDataAsync(orderViewModels, SelectedRegion, SelectedStation, DayLimit);

            Orders.AddRange(orderViewModels);
            SelectedOrders.Clear();
            SelectedOrders.AddRange(orders.Select(order => new OrderVm(order)));
            SelectedOrder = Orders.Last();
            FocusedOrder  = SelectedOrder;
            _eventAggregator.PublishOnUIThread(new OrdersChangedEventArgs {
                Added = orders
            });
            string msg = "Order(s) added";

            if (orders.Count == 1)
            {
                msg = "'" + orders.Single().InvType.TypeName + "' added to Orders";
            }
            _eventAggregator.PublishOnUIThread(new StatusEvent(this, msg));
        }
Ejemplo n.º 14
0
 private bool CanModifyOrder(string arg)
 {
     return(SelectedOrders.Any());
 }
Ejemplo n.º 15
0
 public void RefreshSelectedOrders()
 {
     SelectedOrders.ToList().ForEach(x => x.RefreshOrder());
 }
Ejemplo n.º 16
0
 private bool CanShowOrderTagsExecute(OrderTagGroup arg)
 {
     return(SelectedOrders.Any());
 }