private static IPositionTransferDetail assignProperties(TransferPositionDetailsEditView updateInput, IPositionTransferDetail updatingLine, IDalSession session) { IInstrument instrument = InstrumentMapper.GetInstrument(session, updateInput.Instrumentid); updatingLine.TxDirection = updateInput.TxDirection; updatingLine.PositionSize = new InstrumentSize(updateInput.PositionSize, instrument); updatingLine.ActualPrice = getPriceForInstrument(session, ((ITradeableInstrument)instrument), updatingLine.ParentTransfer.TransferDate); if((updateInput.TransferPriceQuantity != 0m)) updatingLine.TransferPrice = new Price(updateInput.TransferPriceQuantity, ((ITradeableInstrument)instrument).CurrencyNominal, instrument); else updatingLine.TransferPrice = updatingLine.ActualPrice; updatingLine.ValueVV = updatingLine.PositionSize.CalculateAmount(updatingLine.TransferPrice); updatingLine.ValueinEuro = updatingLine.ValueVV.CurrentBaseAmount; return updatingLine; }
public static bool UpdatePositionTransferDetails(TransferPositionDetailsEditView updateInput) { IDalSession session = NHSessionFactory.CreateSession(); try { IPositionTransfer transfer = PositionTransferMapper.getTransfer(session, updateInput.ParentTransfer); IPositionTransferDetail updatingLine = null; if (updateInput.Key == 0) updatingLine = new PositionTransferDetail() { ParentTransfer = transfer }; else updatingLine = PositionTransferMapper.getTransferDetail(session, updateInput.Key); updatingLine = assignProperties(updateInput, updatingLine, session); return session.InsertOrUpdate(updatingLine); } finally { session.Close(); } }