Dalej dla nauki piszę tego mojego CRUDa, wykorzystując wzorce z DDD. Postanowiłem, że jak już zacząłem, to już skończę. Pojawił się znowu problem natury filozoficznej. W tej mojej aplikacji klient może oceniać produkty, ale też zmieniać dokonane oceny. I tu pytanie: jak te zmiany zrealizować?
Opcja 1:
// gdzieś w warstwie aplikacji
// metoda SetStars encji ProductRate jest oznaczona jako internal i wywoływana przez AR Product
product.ChangeRate(_identity.GetCurrentUserId(), stars)
Opcja 2:
// gdzieś w warstwie aplikacji
// metoda SetStars jest publiczna
var rate = product.Rates.SingleOrDefault(r => r.CustomerId == _identity.GetCurrentUserId())
if (rate is null)
// zrób coś
rate.SetStars(stars)