Quindi sto imparando DDD e sto tentando di ridefinire un vecchio progetto usando questo approccio. È un'app piuttosto piccola per registrare i dipendenti per gli eventi. Questi dipendenti sono inizialmente popolati dal DB, registrati e salvati.
Una regola aziendale dice che se un dipendente è contrassegnato come CannotAttend = true
e viene visualizzato, viene registrato normalmente e CannotAttend
è impostato su false
.
La mia domanda riguarda la preoccupazione dell'interfaccia utente. Un messaggio, ReceivedMsg
, viene visualizzato in base allo stato in cui si trova l'oggetto quando si registra / tenta di registrarsi. Lo stato verrebbe inizialmente impostato quando l'oggetto viene popolato dal DB e, quando si registra, viene visualizzato un messaggio diverso in base al fatto che siano stati contrassegnati come CannotAttend
o meno. Questo messaggio non è memorizzato nel DB.
Questo è un problema di cui il dominio dovrebbe preoccuparsi o devo tenere traccia di queste modifiche altrove?
Alcuni messaggi di esempio sono:
Conosciuto quando popolato da DB: Not Currenty Registered
, Already Registered
Dopo la registrazione - Registered
, Registered and set to attend event
L'interfaccia utente visualizza questo messaggio e un colore in base allo stato iniziale dal DB e quindi modificato una volta modificate le proprietà Registered
e / o CannotAttend
.
public class Employee
{
//DB properties
public int EmployeeId { get; private set; }
public string FirstName { get; private set; }
public string LastName { get; private set; }
public int BadgeId { get; private set; }
public bool Registered { get; private set; }
public int Swipes { get; private set; }
public bool CannotAttend { get; private set; }
//Not persisted
public string ReceivedMsg { get; set; }
public RegistrationType RegistrationType { get; private set;}
public void Register(RegistrationType registrationType)
{
if (!Registered)
{
Registered = true;
Swipes = 0;
}
if(CannotAttend)
{
CannotAttend = false;
}
if (registrationType == RegistrationType.Badge) Swipes++;
}
}