internal ValuationMutation(ValuationKey key, DateTime mutationDate, ValuationMutation prevMutation) : this(key, mutationDate) { if (prevMutation != null) { this.Size = prevMutation.Size; this.BookPrice= prevMutation.BookPrice; this.BookValue= prevMutation.BookValue; this.RealisedAmountToDate = prevMutation.RealisedAmountToDate; this.DepositToDate = prevMutation.DepositToDate; this.WithDrawalToDate = prevMutation.WithDrawalToDate; } }
internal void Add(IPositionTx posTx) { DateTime tradeDate = posTx.TransactionDate; ValuationMutation mutation; if (mutations.ContainsKey(tradeDate)) mutation = mutations[tradeDate]; else { mutation = new ValuationMutation(this, tradeDate, LastMutation); if (mutations.Count == 0) FirstMutation = mutation; mutations.Add(tradeDate, mutation); LastMutation = mutation; } mutation.AddTx(posTx); }