public void LoadCurrentDeals() { _deals = _dbManager.GetAllDeals(); ResetInstrumentPosition(); foreach (var deal in _deals) { ObsInstruPosition pos; if (!_currentPosDico.TryGetValue(deal.InstrumentId, out pos)) { var newPos = new ObsInstruPosition(deal); _currentPosDico.Add(deal.InstrumentId, newPos); ObsPositions.Add(newPos); continue; } Pnl.ComputeInstrumentPosition(pos, deal); } ResetBookPosition(); foreach (ObsInstruPosition instruPos in _currentPosDico.Values) { ObsBookPosition pos; if (!_bookPositionDico.TryGetValue(instruPos.Book, out pos)) { var newPos = new ObsBookPosition(instruPos); _bookPositionDico.Add(instruPos.Book, newPos); ObsBookPosition.Add(newPos); return; } Pnl.ComputeBookPosition(pos, instruPos); } foreach (ObsInstruPosition instruPos in _expiredPosDico.Values) { ObsBookPosition pos; if (!_bookPositionDico.TryGetValue(instruPos.Book, out pos)) { var newPos = new ObsBookPosition(instruPos); _bookPositionDico.Add(instruPos.Book, newPos); ObsBookPosition.Add(newPos); return; } Pnl.ComputeBookPosition(pos, instruPos); } }
private BookPosition[] ComputeBookPosition(Dictionary <string, InstrumentPosition> instruPosDico) { var bookPositionDico = new Dictionary <string, BookPosition>(); foreach (InstrumentPosition instruPos in instruPosDico.Values) { BookPosition pos; if (!bookPositionDico.TryGetValue(instruPos.Book, out pos)) { var newPos = new BookPosition(instruPos); bookPositionDico.Add(instruPos.Book, newPos); continue; } Pnl.ComputeBookPosition(pos, instruPos); } return(bookPositionDico.Values.ToArray()); }