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(); } }
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(); } }
public async Task RemoveOrder(Trade trade, Order order) { await TradesRepository.RemoveOrder(trade, order); }