Yukarıda görüldüğü gibi Gathering clası içerisinde Invitations isminde bir List bulunmaktadır. Projenin herhangi bir yerinde bir gathering nesnesi oluştulup daha sonra bu nesnenin içindeki Invitation listesi üzerinde Remove ve Add işlemleri yapılabilir.
Böyle bir durumla başa çıkabilmek için ilk olarak Gathering sınıfındaki Invitation listesine eleman eklemek için Gathering sınıfı içerisinde geriye invitation dönen bir adet SendInvitation isminde metod oluşturacağız ve bu metodun görevi bir adet Invitation nesnesi oluşturmak ve bu nesneyi Gathering sınıfındaki invatation list collectionuna eklemek olacaktır.
Burada invation nesnesinin sadece Domain katmanında oluşturulmasını sağlamak içinde invaitation sınıfının constructeri internal yapılır. Artık Application Layerda invitation nesnesi new() lenemez.
Gathering sınıfındaki List<Invitation> şeklinde kullanılan tanımlama IReadOnlyCollection ile değiştirilir. IReadOnlyCollection içersinde Add ve Remove metodları yoktur. Böylece projenin herhangi bir yerinde bu liste üzerinde Remove yada Add işlemi yapılamaz.
Son olarak güncellememiz gerekirse, Gathering sınıfı içerisinde bir adet private readonly _invitations isminde invitation List oluşturuyoruz. Daha sonra IReadOnlyCollection invitation propertysinin resultına bunu ekliyoruz.
Hiç yorum yok:
Yorum Gönder