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); } } }
private void DeleteOrder(Order order) { Log.Info($"Перемещение в корзину текущего заказа {order.DisplayId} дата создания: {order.CreatedOn}" + $" прайс-лист: {order.SafePrice?.Name}" + $" позиций: {order.LinesCount}"); var deletedOrder = new DeletedOrder(order); Session.Save(deletedOrder); DeletedOrders.Add(deletedOrder); Session.Delete(order); if (order.Address != null && !order.Address.IsProxy()) { order.Address.Orders.Remove(order); } Orders.Remove(order); Session.Flush(); }