public ExecutionReport ConvertExecutionReport(QuickFix.FIX44.ExecutionReport report) { var executedTrade = new ExecutionReport { Instrument = ExchangeSymbolToLykkeInstrument(report.Symbol.Obj), Time = report.IsSetTransactTime() ? report.TransactTime.Obj : DateTime.UtcNow, Volume = report.CumQty.Obj, Type = ConvertSide(report.Side), ExchangeOrderId = report.OrderID.Obj, ExecutionStatus = ConvertStatus(report.OrdStatus), ClientOrderId = report.ClOrdID.Obj, ExecType = ConvertExecType(report.ExecType), OrderType = report.IsSetOrdType() ? ConvertOrderType(report.OrdType) : OrderType.Unknown, Price = report.IsSetAvgPx() ? report.AvgPx.Obj : 0m, FailureType = OrderStatusUpdateFailureType.None, Success = !new[] { OrderExecutionStatus.Cancelled, OrderExecutionStatus.Rejected }.Contains(ConvertStatus(report.OrdStatus)), Message = report.IsSetText() ? report.Text.Obj : string.Empty }; return(executedTrade); }