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; }
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 + ")")); }
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))); }
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))); }
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); } } }
public void Freeze() { if (!CanFreeze) { return; } if (!Confirm("\"Заморозить\" выбранные заявки?")) { return; } foreach (var selectedOrder in SelectedOrders) { selectedOrder.Frozen = true; } Log.Info($"Заморожены заявки {SelectedOrders.Implode(x => x.Id)}"); }
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); } } }
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)); }
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)); }
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, ""); } } }
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(); } }
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); } }
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)); }
private bool CanModifyOrder(string arg) { return(SelectedOrders.Any()); }
public void RefreshSelectedOrders() { SelectedOrders.ToList().ForEach(x => x.RefreshOrder()); }
private bool CanShowOrderTagsExecute(OrderTagGroup arg) { return(SelectedOrders.Any()); }