Tout conseil ou indication d'un exemple serait très apprécié (je n'arrive pas à formuler un bon terme de recherche sur le Googleplex).
J'ai un modèle utilisant des enums que je définis dans un dictionnaire et que je rends ensuite dans la vue avec @Html.RadioButtonFor, etc.
Voici un exemple de mon modèle :
public PaymentPlanList PaymentPlan { get; set; }
public enum PaymentPlanList
{
PaymentPlan_One,
PaymentPlan_Two,
}
public class PaymentPlanDictionary
{
public static readonly Dictionary<PaymentPlanList, string> paymentplanDictionary = new Dictionary<PaymentPlanList, string>
{
{ PaymentPlanList.PaymentPlan_One, "One full payment in advance (receive the lowest price)." },
{ PaymentPlanList.PaymentPlan_Two, "Two payments: first payment of 50% due up front, the balance of 50% due within 30 days (increases fee by $100)." },
};
static string ConvertPaymentPlan(PaymentPlanList paymentplanlist)
{
string name;
return (paymentplanDictionary.TryGetValue(paymentplanlist, out name))
? name : paymentplanlist.ToString();
}
static void Main()
{
Console.WriteLine(ConvertPaymentPlan(PaymentPlanList.PaymentPlan_One));
Console.WriteLine(ConvertPaymentPlan(PaymentPlanList.PaymentPlan_Two));
}
}
Et, pour être complet, voici mon point de vue sur ce qui précède :
<p>
@Html.RadioButtonFor(m => m.PaymentPlan, "PaymentPlan_One")
One full payment in advance (receive the lowest price).
</p>
<p>
@Html.RadioButtonFor(m => m.PaymentPlan, "PaymentPlan_Two")
Two payments: first payment 50% due up front, the balance of 50% due within 30 days (increases fee by $100).
</p>
C'est un système de devis que je fais remplir aux utilisateurs. Pour ce service particulier, disons que je facture 1 000 $. C'est le prix de base. En fonction de l'entrée de l'utilisateur, ce prix sera modifié, et je veux le montrer à l'utilisateur. Donc, si l'utilisateur sélectionne la première option, le prix reste inchangé. Si l'utilisateur sélectionne la deuxième option, le prix est augmenté de 100,00 $.
Cette évolution est exponentielle, car il y a plus d'intrants qui affectent le prix (s'il est sélectionné).
En fin de compte, sur la base des entrées de l'utilisateur, je dois calculer le total. Je rends une vue qui affichera le total. Je pensais utiliser des blocs @{} et des instructions if/else if pour soit a) ne rien afficher si ce qui a été sélectionné n'augmente pas le total, soit b) afficher le montant supplémentaire (par exemple, 100,00 $), puis plus tard afficher un total.
Quelque chose comme (ÉDITER ici pour plus de clarté) :
- Service de base : 1 000,00
- Service complémentaire1 : 100,00 $ (uniquement si l'utilisateur sélectionne "PaymentPlan_Two" pour deux paiements de 50 % chacun (dans l'énumération PaymentPlanList), sinon caché (et pas d'ajout des 100,00 $) si l'utilisateur sélectionne "PaymentPan_One" et paie en totalité)
- Service complémentaire 2 : 0,00 $ (cette valeur est cachée et représente 0,00 $ ou aucune valeur puisque l'utilisateur n'a rien sélectionné dans une énumération séparée, mais la valeur de 100,00 $ serait ajoutée si elle était sélectionnée, ce qui donnerait un total de 1 200,00 $ si elle était sélectionnée. Par exemple, le Choix_1 est 0,00 $, le Choix_2 est 100,00 $ et le Choix_3 est 200,00 $).
- TOTAL : 1 100,00
Merci pour toute aide.