public PortfolioValuation(DateTime Date, float?NbParts            = null,
                           Composite Valuated                      = null, CurrencyAndAmount MarketValue = null,
                           CurrencyAndAmount BookValue             = null, CurrencyAndAmount FaceAmount  = null, Yield Yield = null,
                           DebtDataCalculation DebtDataCalculation = null,
                           DebtYield DebtYield                     = null, DebtSpread DebtSpread = null)
     : base(Date, Valuated, MarketValue, BookValue, FaceAmount, Yield, DebtDataCalculation, DebtYield, DebtSpread)
 {
     this.NumberOfParts = NbParts;
 }
 public IndexValuation(DateTime Date, double?IndexPriceValue = null, double?IndexGrossValue          = null, double?IndexNetValue = null, DateTime?BaseDate = null, double?BaseValue = null,
                       Composite Valuated                      = null, CurrencyAndAmount MarketValue = null,
                       CurrencyAndAmount BookValue             = null, CurrencyAndAmount FaceAmount  = null, Yield Yield = null,
                       DebtDataCalculation DebtDataCalculation = null,
                       DebtYield DebtYield                     = null, DebtSpread DebtSpread = null)
     : base(Date, Valuated, MarketValue, BookValue, FaceAmount, Yield, DebtDataCalculation, DebtYield, DebtSpread)
 {
     this.IndexPriceValue = IndexPriceValue;
     this.IndexGrossValue = IndexGrossValue;
     this.IndexNetValue   = IndexNetValue;
     this.IndexBaseDate   = BaseDate;
     this.IndexBaseValue  = BaseValue;
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="ISINHolder"></param>
 /// <param name="HoldAsset"></param>
 /// <param name="Quantity"></param>
 /// <param name="MarketValue"></param>
 /// <param name="BookValue"></param>
 /// <param name="FaceAmount"></param>
 internal Valuation(DateTime Date, Composite Valuated = null, CurrencyAndAmount MarketValue = null,
                    CurrencyAndAmount BookValue       = null, CurrencyAndAmount FaceAmount  = null,
                    Yield Yield = null,
                    DebtDataCalculation DebtDataCalculation = null,
                    DebtYield DebtYield = null, DebtSpread DebtSpread = null)
 {
     if (Valuated != null)
     {
         Valuated.Add(this);
         this.Valuated = Valuated;
     }
     this.Date                = Date;
     this.FaceAmount          = FaceAmount ?? new CurrencyAndAmount();
     this.BookValue           = BookValue ?? new CurrencyAndAmount();
     this.MarketValue         = MarketValue ?? new CurrencyAndAmount();
     this.Yield               = Yield ?? new Yield();
     this.DebtYield           = DebtYield ?? new DebtYield();
     this.DebtSpread          = DebtSpread ?? new DebtSpread();
     this.DebtDataCalculation = DebtDataCalculation ?? new DebtDataCalculation();
 }
        public SecuritiesPricing(CurrencyAndAmount Price, DateTime Date, TypeOfPriceCode PriceType,
                                 double?AskPrice             = null, double?BidPrice = null, double?MidPrice = null,
                                 PriceFactType PriceFactType = null, Yield Yield     = null,
                                 DebtPriceCalculation DebtPriceCalculation = null,
                                 DebtDataCalculation DebtDataCalculation   = null, DebtYield DebtYield = null, DebtSpread DebtSpread = null)
        {
            this.Price     = Price;
            this.PriceType = PriceType ?? (TypeOfPriceCode)"MARKET";
            this.Date      = Date;
            this.AskPrice  = AskPrice;
            this.BidPrice  = BidPrice;
            this.MidPrice  = MidPrice;

            this.PriceFactType = PriceFactType ?? new PriceFactType();
            this.Yield         = Yield ?? new Yield();

            this.DebtPriceCalculation = DebtPriceCalculation ?? new DebtPriceCalculation();
            this.DebtDataCalculation  = DebtDataCalculation ?? new DebtDataCalculation();

            this.DebtSpread = DebtSpread ?? new DebtSpread();
            this.DebtYield  = DebtYield ?? new DebtYield();
        }