public interface IOrderCalculationService { CalculateOrderResponse CalculateOrder(CalculateOrderRequest response); }
public class CalculateOrderRequest { public CalculateOrderRequest(); public int? AccountId { get; set; } public string AccountNumber { get; set; } public string AccountSSN { get; set; } public double? BrokerFeePercent { get; set; } public double? CashQuantity { get; set; } public string CommissionCategory { get; set; } public FeeType? CommissionType { get; set; } public double? CommissionValue { get; set; } public double? DiscountPercent { get; set; } public bool ForAllocation { get; set; } public bool IncludeCommissionInPrice { get; set; } public int? IntroducingUserId { get; set; } public int? OrderInstructionId { get; set; } public string OrderReference { get; set; } public string PortfolioExternalReferenceId { get; set; } public int? PortfolioId { get; set; } public double? Price { get; set; } public double? PriceToFee { get; set; } public double? ProcessingFee { get; set; } public double? Quantity { get; set; } public int? SalespersonUserId { get; set; } public DateTime? SettlementDate { get; set; } public Side Side { get; set; } public string Symbol { get; set; } public DateTime? TradeDate { get; set; } public int? TraderUserId { get; set; } public bool UseCommissionCategory { get; set; } public bool? UseEnhancedFatFingersCheck { get; set; } }
public class CalculateOrderResponse { public CalculateOrderResponse(); public int? AccountId { get; set; } public string AccountNumber { get; set; } public string AccountSSN { get; set; } public AssetClass AssetClass { get; set; } public double? BestAsk { get; set; } public double? BestBid { get; set; } public BondCalculation BondCalculation { get; set; } public double? BrokerFeeAmount { get; set; } public double? BrokerFeePercent { get; set; } public double? CashQuantity { get; set; } public double? CommissionAmount { get; set; } public string CommissionCategory { get; set; } public FeeType? CommissionType { get; set; } public double? CommissionValue { get; set; } public string Currency { get; set; } public int? CustomerId { get; set; } public string CustomerName { get; set; } public string CustomerSSN { get; set; } public double? DiscountAmount { get; set; } public double? DiscountPercent { get; set; } public double? DiscountPrice { get; set; } public double? DiscountValue { get; set; } public double? EffectiveCommissionAmount { get; set; } public double? EffectiveCommissionPercent { get; set; } public string ErrorMessage { get; set; } public string ErrorMessageDetails { get; set; } public bool IncludeCommissionInPrice { get; set; } public string InstrumentName { get; set; } public double? LastPrice { get; set; } public string Message { get; set; } public string PortfolioExternalReferenceId { get; set; } public int? PortfolioId { get; set; } public double? Price { get; set; } public double? PriceToFee { get; set; } public double? ProcessingFee { get; set; } public double? Quantity { get; set; } public DateTime? SettlementDate { get; set; } public Side Side { get; set; } public bool Success { get; set; } public string Symbol { get; set; } public double? TaxAmount { get; set; } public double? TotalCost { get; set; } public double? TotalPayment { get; set; } public double? TotalTradeValue { get; set; } public double? TotalValue { get; set; } public DateTime? TradeDate { get; set; } public string WarningMessage { get; set; } }