public void Load(string name = null, int clientId = -1)
{
var messages = LoadMessages(name, clientId);
foreach (var msg in messages)
{
msg.IsLoaded = true;
var typeId = msg.TypeId;
switch (typeId)
{
case DataObjectType.ExecutionReport:
this.framework.EventServer.OnExecutionReport((ExecutionReport)msg);
break;
case DataObjectType.ExecutionCommand:
{
var command = (ExecutionCommand)msg;
switch (command.Type)
{
case ExecutionCommandType.Send:
{
var order = new Order(command);
command.Order = order;
command.Instrument = this.framework.InstrumentManager.GetById(command.InstrumentId);
command.Portfolio = this.framework.PortfolioManager.GetById(command.PortfolioId);
command.Provider = this.framework.ProviderManager.GetExecutionProvider(command.ProviderId);
order.Instrument = command.Instrument;
order.Portfolio = command.Portfolio;
order.Provider = command.Provider;
lock (this.obj)
this.counter = Math.Max(this.counter, order.Id);
this.framework.EventServer.OnSendOrder(order);
Orders.Add(order);
this.ordersById[order.Id] = order;
if (this.framework.Mode == FrameworkMode.Realtime)
this.ordersByClOrderId[order.ClOrderId] = order;
Messages.Add(command);
order.OnExecutionCommand(command);
this.framework.EventServer.OnExecutionCommand(command);
this.framework.EventServer.OnPendingNewOrder(order, true);
break;
}
case ExecutionCommandType.Cancel:
case ExecutionCommandType.Replace:
this.ordersById[command.OrderId].OnExecutionCommand(command);
break;
}
break;
}
default:
if (typeId == DataObjectType.AccountReport)
this.framework.EventServer.OnAccountReport((AccountReport)msg);
break;
}
}
}