Не прокатывает мое решение с репозиторием - такая же фигня.
икак не пойму как так получется
вот класс репозитория
public class OrderRepository
{
private ITrader trader;
private List<Order> orders = new List<Order>();
private object locker = new object();
public OrderRepository(ITrader trader)
{
this.trader = trader;
trader.OrdersChanged += new
Action<IEnumerable<Order>>(trader_OrdersChanged);
trader.NewOrders += new
Action<IEnumerable<Order>>(trader_NewOrders);
}
public Order GetOrderById(long id)
{
lock (locker)
{
Order order = orders.LastOrDefault(ord => ord.Id ==
id);
if (order != null)
{
orders.RemoveAll(ord => ord.Id == id);
orders.Add(order);
}
return order;
}
}
public Order GetOrderByTransId(long id)
{
lock (locker)
{
Order order = orders.LastOrDefault(ord =>
ord.TransactionId == id);
if (order != null)
{
orders.RemoveAll(ord => ord.TransactionId == id);
orders.Add(order);
Console.WriteLine(String.Format("GetOrderByTransId
TRID = {0} St = {1} bal = {2} ID = {3}",
order.TransactionId, order.State, order.Balance, order.Id));
}
return order;
}
}
void trader_NewOrders(IEnumerable<Order> obj)
{
lock (locker)
{
orders.AddRange(obj);
}
}
void trader_OrdersChanged(IEnumerable<Order> obj)
{
lock (locker)
{
orders.AddRange(obj);
}
}
}
воркфлоу перед какждыйм циклом проверки заявки лезет сюда за заявкой
но каким то чудом он получает из репозиторя заявку со стутусом Done,
но с целым балансом.
И тут же вылетает лог события что заявка изменилась, статус Доне, и
баланс 0. Ваще ничего не понимаю :(
On 8 июл, 13:31, Mikhail Sukhov <msou
...@gmail.com> wrote: