KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
public class Person { public IList<String> SpecialBirthPlaces; public static readonly DateTime ImportantDate; public String BirthPlace {get;set;} public DateTime BirthDate { set { if (BirthPlace!=null && value < ImportantDate && SpecialBirthPlaces.Contains(BirthPlace)) { BirthPlace = DataBase.GetBirthPlaceFor(BirthPlace, value); } } } } This is an attempt to encapsulate a simple rule in my domain model. The rule I'm trying to capture is: when, for some reason, we update a person's birth date (e.g. there was a mistake in the original user input) we need to check the person's birthplace and replace it with some other value from a database, if it is listed in our database as a special birthplace. However, I have 2 problems implementing it: This rule modifies domain entity state (property) and I need to reflect this change in the user interface. My domain model is POCO. I could put this logic in the ViewModel, but this is wrong because it's not UI logic. It's an important domain rule which I need to capture. My list of SpecialBirthPlaces is pretty big and I don't want to populate it every time I get a customer from database. Also, I need to get a replacement for Birthplace when the rule is satisfied. As I said the list of special birthplaces and replacements for this is very big and is stored in the DB. How to implement the logic I need in DDD style?
Tags (comma-separated)
Save Edits
Cancel