Posted on 13/08/2010 08:48:11
Udfordring:
Hvis man ønsker at angive Currency på Order objektet, så er denne egenskab read-only, dog er de underliggende properties (Code, PayGatewayCode, Symbol) på Currency property mulige at sætte på ordren. Men det virker ikke.
Problem:
Vi har fundet frem til via Reflector at når en Order skal beregne sin pris, udføres der beregninger på UnitPrice på de Product objekter der kan findes frem til via OrderLine informationerne. Desværre bruger disse beregninger Currency fra Context objektet og ikke Currency fra Order objektet.
Løsning:
Ønsker man at ændre Currency har vi fået det til at fungere ved at rette Currency egenskaberne på Order objektet og samtidigt at sætte Context.Currency lig med Order.Currency. Context.Currency er ikke read-only, så det er ret nemt, men vi brugte da ca. 5 timer med 2 mand for at finde fejlen og en løsning på problemet.
Forslag:
Order objektets prisberegningsmetoder bør anvende Currency på Order objektet og ikke Context objektet, hvis Order.Currency ikke er sat kunne man jo falde tilbage på Context.Currency.