Exemple #1
0
        private void OrdersGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            //here we set the trade selected in the picker popup
            if ((string)e.Column.Header == "Trade")
            {
                if (e.EditAction == DataGridEditAction.Commit)
                {
                    var order         = (Order)OrdersGrid.SelectedItem;
                    var items         = TradePickerListBox.Items.Cast <CheckListItem <Trade> >().ToList();
                    var selectedTrade = items.FirstOrDefault(x => x.IsChecked);

                    Task.Run(() =>
                    {
                        if (selectedTrade == null)
                        {
                            TradesRepository.RemoveOrder(order.Trade, order);
                        }
                        else
                        {
                            TradesRepository.AddOrder(selectedTrade.Item, order);
                        }

                        Context.SaveChanges();
                    });
                }
                OrdersGridTradePickerPopup.IsOpen = false;
            }
        }
        private async void DeleteOrders(IList orders)
        {
            if (orders == null || orders.Count == 0)
            {
                return;
            }
            var selectedOrders = orders.Cast <Order>().ToList();

            var res = await DialogService.ShowMessageAsync(
                "Delete Order(s)",
                string.Format("Are you sure you want to delete {0} order(s)?", selectedOrders.Count),
                MessageDialogStyle.AffirmativeAndNegative);

            if (res == MessageDialogResult.Affirmative)
            {
                foreach (Order o in selectedOrders)
                {
                    if (o.Trade != null)
                    {
                        TradesRepository.RemoveOrder(o.Trade, o);
                    }
                    Context.Orders.Remove(o);
                }
                Context.SaveChanges();
            }
        }
Exemple #3
0
        private async Task DeleteOrders(IList orders)
        {
            if (orders == null || orders.Count == 0)
            {
                return;
            }
            var selectedOrders = orders.Cast <Order>().ToList();

            var res = await DialogService.ShowMessageAsync(Parent,
                                                           "Delete Order(s)",
                                                           string.Format("Are you sure you want to delete {0} order(s)?", selectedOrders.Count),
                                                           MessageDialogStyle.AffirmativeAndNegative);

            if (res != MessageDialogResult.Affirmative)
            {
                return;
            }

            //if the order belongs to a trade, remove it
            foreach (Order o in selectedOrders)
            {
                if (o.Trade != null)
                {
                    await TradesRepository.RemoveOrder(o.Trade, o);
                }
            }

            using (var dbContext = _contextFactory.Get())
            {
                foreach (Order o in selectedOrders)
                {
                    //remove executions first
                    if (o.Executions != null)
                    {
                        List <Execution> toRemove = o.Executions.ToList();
                        foreach (Execution exec in toRemove)
                        {
                            dbContext.Executions.Remove(exec);
                        }
                        o.Executions.Clear();
                    }

                    //finally delete the order
                    dbContext.Orders.Remove(o);
                }
                await dbContext.SaveChangesAsync();
            }
        }
Exemple #4
0
 public async Task RemoveOrder(Trade trade, Order order)
 {
     await TradesRepository.RemoveOrder(trade, order);
 }