public IAssetInstrument Clone() => new AsianSwap { TradeId = TradeId, Notional = Notional, Direction = Direction, AverageStartDate = AverageStartDate, AverageEndDate = AverageEndDate, FixingDates = (DateTime[])FixingDates.Clone(), FixingCalendar = FixingCalendar, PaymentCalendar = PaymentCalendar, SpotLag = SpotLag, SpotLagRollType = SpotLagRollType, PaymentLag = PaymentLag, PaymentLagRollType = PaymentLagRollType, PaymentDate = PaymentDate, PaymentCurrency = PaymentCurrency, AssetFixingId = AssetFixingId, AssetId = AssetId, DiscountCurve = DiscountCurve, FxConversionType = FxConversionType, FxFixingDates = FxFixingDates == null ? null : (DateTime[])FxFixingDates.Clone(), FxFixingId = FxFixingId, Strike = Strike, Counterparty = Counterparty, HedgingSet = HedgingSet, PortfolioName = PortfolioName };
public IAssetInstrument Clone() => new MultiPeriodBackpricingOption { TradeId = TradeId, Notional = Notional, Direction = Direction, PeriodDates = PeriodDates, DecisionDate = DecisionDate, FixingDates = FixingDates.Select(x => (DateTime[])x.Clone()).ToList(), FixingCalendar = FixingCalendar, PaymentCalendar = PaymentCalendar, SpotLag = SpotLag, SpotLagRollType = SpotLagRollType, PaymentLag = PaymentLag, PaymentLagRollType = PaymentLagRollType, PaymentDate = PaymentDate, PaymentCurrency = PaymentCurrency, AssetFixingId = AssetFixingId, AssetId = AssetId, DiscountCurve = DiscountCurve, FxConversionType = FxConversionType, FxFixingDates = FxFixingDates?.Select(x => (DateTime[])x.Clone()).ToList(), FxFixingId = FxFixingId, CallPut = CallPut, Counterparty = Counterparty, PortfolioName = PortfolioName, SettlementDate = SettlementDate };
public IAssetInstrument Clone() { return(new AsianLookbackOption { TradeId = TradeId, Notional = Notional, Direction = Direction, ObsStartDate = ObsStartDate, ObsEndDate = ObsStartDate, FixingDates = (DateTime[])FixingDates.Clone(), FixingCalendar = FixingCalendar, PaymentCalendar = PaymentCalendar, SpotLag = SpotLag, SpotLagRollType = SpotLagRollType, PaymentLag = PaymentLag, PaymentLagRollType = PaymentLagRollType, PaymentDate = PaymentDate, PaymentCurrency = PaymentCurrency, AssetFixingId = AssetFixingId, AssetId = AssetId, DiscountCurve = DiscountCurve, FxConversionType = FxConversionType, FxFixingDates = FxFixingDates == null ? null : (DateTime[])FxFixingDates.Clone(), FxFixingId = FxFixingId, }); }
Enumerable.SequenceEqual(FxFixingDates ?? Array.Empty <DateTime>(), swap.FxFixingDates ?? Array.Empty <DateTime>()) &&
EqualityComparer <DateTime[]> .Default.Equals(FxFixingDates, swap.FxFixingDates) &&