条件付き計算を実行するコードがたくさんあります。ユーザーは UI (ドロップダウン、ラジオ ボタンなど) で選択を行い、その選択に基づいて結果を計算します。以前は、ViewBag を使用して計算結果をビューに表示していました。しかし、今はNHibernateを使用してこれらを保存したいのですが、計算結果を保存するものに変換するのに苦労しています。これが完全な書き直しを必要としないことを望んでいました。
Calculate.cs で以前に行っていたことの例を次に示します (1 つの条件の例 - 注: PriceQuote.cs は値を保持するだけです)。
public decimal decSpouseFilingChapter7(QuoteViewModel quoteData)
{
if (quoteData.QuotePartRecord.MaritalStatusDropDown ==
MaritalStatus.Yes &&
quoteData.QuotePartRecord.SpouseFilingRadioButton ==
SpouseFiling.No)
return PriceQuote.priceNoSpouseFilingChapter7; // see below
else if (quoteData.QuotePartRecord.MaritalStatusDropDown ==
MaritalStatus.Yes &&
quoteData.QuotePartRecord.SpouseFilingRadioButton ==
SpouseFiling.Yes)
return PriceQuote.priceSpouseFilingChapter7; // see below
else
return 0;
}
PriceQuote.cs は次のようになります (2 つだけを示していますが、100 以上の金額を保持しています)。
public static decimal priceNoSpouseFilingChapter7 { get { return 100; } }
public static decimal priceSpouseFilingChapter7 { get { return 300; } }
Calculate.cs のさらに先で、一連の条件の後、これを実行して計算結果を導き出します。
public decimal TotalChapter7(QuoteViewModel quoteData)
{
decimal total = PriceQuote.priceChapter7;
total += this.decSpouseFilingChapter7(quoteData);
total += this.decPaymentPlanChapter7(quoteData);
total += this.decProcessingChapter7(quoteData);
total += this.decSubmissionChapter7(quoteData);
total += this.decDistrictChapter7(quoteData);
total += this.decUnsecuredCreditor(quoteData);
total += this.decGarnishment(quoteData);
total += this.decTaxLiability(quoteData);
total += this.decRentalEviction(quoteData);
total += this.decRealEstateChapter7(quoteData);
total += this.decRealEstateIntention(quoteData);
total += this.decVehicleChapter7(quoteData);
total += this.decVehicleIntention(quoteData);
total += this.decOtherAssetChapter7(quoteData);
total += this.decOtherAssetIntention(quoteData);
total += this.decFinancialAccount(quoteData);
total += this.decMeansTestAnalysisChapter7(quoteData);
return total;
}
ご覧のとおり、私が持っているものの長さを示すために、他のすべての条件を追加しました。これは合計の 1 つにすぎません。
私は次のようなことをしようとしget/set
ているので、これをどのように変換するかについてのサンプルコードを誰かが提供できますか:
public virtual decimal SpouseFilingChapter7
{
get
{
return decSpouseFilingChapter7;
}
set
{
decSpouseFilingChapter7 = value;
}
}
私は次のようなことをするかもしれません:
public virtual decimal TotalChapter7
{
get
{
return SpouseFilingChapter7 + ...;
}
}
しかし、それは明らかに間違っています。
助けてくれてありがとう。