public override Loan GenerateInstrument() { var numPaymentsPerYear = (int)TradeInfo.Frequency.ToFrequency().CountPerYear(); var ppm = TradeInfo.AbsPrepaymentModel.ToEnumType <AbsPrepaymentModel>(); var dm = TradeInfo.AbsDefaultModel.ToEnumType <AbsDefaultModel>(); IMortgagePrepayment prepaymentModel; if (ppm == AbsPrepaymentModel.Psa) { prepaymentModel = new Psa(TradeInfo.PsaMultiplier, 0.06, 30, numPaymentsPerYear); } else if (ppm == AbsPrepaymentModel.Cpr) { prepaymentModel = new Cpr(TradeInfo.AnnualCprRate, numPaymentsPerYear); } else { prepaymentModel = new Psa(); } IMortgageDefault defaultModel; if (dm == AbsDefaultModel.Sda) { defaultModel = new Sda(TradeInfo.SdaMultiplier, TradeInfo.RecoveryRate, numPaymentsPerYear); } else if (dm == AbsDefaultModel.Cdr) { defaultModel = new Cdr(TradeInfo.AnnualCdrRate, numPaymentsPerYear, TradeInfo.RecoveryRate); } else { defaultModel = new Sda(); } var mortgageCalcMethod = TradeInfo.MortgageCalcMethod.ToEnumType <MortgageCalcMethod>(); return(new Loan(TradeInfo.StartDate.ToDate(), TradeInfo.MaturityDate.ToDate(), TradeInfo.FirstPaymentDate.ToDate(), TradeInfo.Notional, TradeInfo.NumOfPayment, TradeInfo.DayCount.ToDayCountImpl(), TradeInfo.Frequency.ToFrequency(), TradeInfo.Coupon, TradeInfo.ResetDate.ToDate(), TradeInfo.IsFloatingRate, string.IsNullOrEmpty(TradeInfo.IndexType) ? IndexType.None : TradeInfo.IndexType.ToIndexType(), TradeInfo.FloatingRateMultiplier, TradeInfo.Amortization.ToAmortizationType(), TradeInfo.Currency.ToCurrencyCode(), mortgageCalcMethod == MortgageCalcMethod.Simple ? new SimpleMortgageCalculator(prepaymentModel, defaultModel) : (IMortgageCalculator) new MortgageCalculator(prepaymentModel, defaultModel), TradeInfo.TaxRate )); }
public override int GetHashCode() { return(Cpr.GetHashCode() ^ GivenName.GetHashCode() ^ SurName.GetHashCode() ^ Email.GetHashCode() ^ Occupation.GetHashCode() ^ Role.GetHashCode() ^ AuthorizationCode.GetHashCode()); }
/// <summary> /// Calculate the hash code of the instance. /// </summary> /// <returns>The hash code of the instance.</returns> public override int GetHashCode() { unchecked { var result = DbId; result = (result * 397) ^ (FirstName != null ? FirstName.GetHashCode() : 0); result = (result * 397) ^ (LastName != null ? LastName.GetHashCode() : 0); result = (result * 397) ^ (Street != null ? Street.GetHashCode() : 0); result = (result * 397) ^ (City != null ? City.GetHashCode() : 0); result = (result * 397) ^ (Cpr != null ? Cpr.GetHashCode() : 0); result = (result * 397) ^ VoterId; result = (result * 397) ^ (PollingVenue != null ? PollingVenue.GetHashCode() : 0); result = (result * 397) ^ (PollingTable != null ? PollingTable.GetHashCode() : 0); result = (result * 397) ^ Voted.GetHashCode(); result = (result * 397) ^ VotedTime; result = (result * 397) ^ (VotedPollingTable != null ? VotedPollingTable.GetHashCode() : 0); result = (result * 397) ^ Exists.GetHashCode(); return(result); } }