public void OnOperationRecordsUpdate(Win32.OperationRecord win32Record) { try { OperationRecord record = new OperationRecord(); record.RecordID = win32Record.iRecordId; record.Symbol = win32Record.caSymbol; DateTime time; bool succ = DateTime.TryParse(win32Record.caRectPeriodBegin, out time); if (succ) { record.RectPeriodBegin = time; } succ = DateTime.TryParse(win32Record.caRectPeriodEnd, out time); if (succ) { record.RectPeriodEnd = time; } record.UpperBoundary = win32Record.dUpperBoundary; record.LowerBoundary = win32Record.dLowerBoundary; record.Range = win32Record.dRange; record.Direction = GetDirection(win32Record.iDirection); record.EntryPoint = win32Record.dEntryPoint; succ = DateTime.TryParse(win32Record.caEntryTime, out time); if (succ) { record.EntryTime = time; } record.EntryReason = GetEntryReason(win32Record.iEntryReason); record.EntryType = GetEntryExitType(win32Record.iEntryType); record.EntryQuantity = win32Record.iEntryQuantity; record.EntryStatus = GetEntryExitStatus(win32Record.iEntryStatus); record.ExitPoint = win32Record.dExitPoint; succ = DateTime.TryParse(win32Record.caExitTime, out time); if (succ) { record.ExitTime = time; } record.ExitReason = GetExitReason(win32Record.iExitReason); record.ExitType = GetEntryExitType(win32Record.iExitType); record.ExitQuantity = win32Record.iExitQuantity; record.ExitStatus = GetEntryExitStatus(win32Record.iExitStatus); record.ProfitLoss = win32Record.ProfitLoss; EventAggregator.GetEvent <OperRecordUpdateEvent>().Publish(record); } catch (System.Exception ex) { LogManager.Logger.ErrorFormat("Operation Record updating error:{0}", ex.Message); } }
public void UpdateOperationRecord(OperationRecord record) { OperationRecord existingRec = _records.FirstOrDefault(r => r.RecordID == record.RecordID); if (existingRec != null) { // update existingRec.Symbol = record.Symbol; existingRec.RectPeriodBegin = record.RectPeriodBegin; existingRec.RectPeriodEnd = record.RectPeriodEnd; existingRec.UpperBoundary = record.UpperBoundary; existingRec.LowerBoundary = record.LowerBoundary; existingRec.Range = record.Range; existingRec.Direction = record.Direction; existingRec.EntryPoint = record.EntryPoint; existingRec.EntryTime = record.EntryTime; existingRec.EntryReason = record.EntryReason; existingRec.EntryType = record.EntryType; existingRec.EntryQuantity = record.EntryQuantity; existingRec.EntryStatus = record.EntryStatus; existingRec.ExitPoint = record.ExitPoint; existingRec.ExitTime = record.ExitTime; existingRec.ExitReason = record.ExitReason; existingRec.ExitType = record.ExitType; existingRec.ExitQuantity = record.ExitQuantity; existingRec.ExitStatus = record.ExitStatus; existingRec.ProfitLoss = record.ProfitLoss; } else { // add new one _records.Add(record); } }