public void UpdateText(ClassifiedAdText text) => Apply( new V1.ClassifiedAdTextUpdated { Id = Id, OwnerId = OwnerId, AdText = text } );
protected override void When(object @event) { Picture picture; switch (@event) { case V1.ClassifiedAdCreated e: Id = e.Id; OwnerId = UserId.FromGuid(e.OwnerId); State = ClassifiedAdState.Inactive; _pictures = new List <Picture>(); break; case V1.ClassifiedAdTitleChanged e: Title = new ClassifiedAdTitle(e.Title); break; case V1.ClassifiedAdTextUpdated e: Text = new ClassifiedAdText(e.AdText); break; case V1.ClassifiedAdPriceUpdated e: Price = new Price(e.Price, e.CurrencyCode); break; case V1.ClassifiedAdSentForReview _: State = ClassifiedAdState.PendingReview; break; case V1.ClassifiedAdPublished e: ApprovedBy = UserId.FromGuid(e.ApprovedBy); State = ClassifiedAdState.Active; break; // picture case V1.PictureAddedToAClassifiedAd e: picture = new Picture(Apply); ApplyToEntity(picture, e); _pictures.Add(picture); break; case V1.ClassifiedAdPictureResized e: picture = FindPicture(new PictureId(e.PictureId)); ApplyToEntity(picture, @event); break; } }