Ejemplo n.º 1
0
        protected override void SetStateByEvent(IEvent @event)
        {
            switch (@event)
            {
            case AdvertismentCreated e:
                Id      = e.Id;
                OwnerId = new UserId(e.OwnerId);
                State   = AdvertismentState.Inactive;
                break;

            case AdvertismentPriceUpdated e:
                Price = new Price(Rial.FromLong(e.Price));
                break;

            case AdvertismentSentForReview e:
                State = AdvertismentState.ReviewPending;
                break;

            case AdvertismentTextUpdated e:
                Text = new AdvertismentText(e.AdvertismentText);
                break;

            case AdvertismentTitleChanged e:
                Title = new AdvertismentTitle(e.Title);
                break;


            default:
                throw new InvalidOperationException("امکان اجرای عملیات درخواستی وجود ندارد");
            }
        }
Ejemplo n.º 2
0
 public void SetTitle(AdvertismentTitle title)
 {
     HandleEvent(new AdvertismentTitleChanged
     {
         Id    = Id,
         Title = title
     });
 }
Ejemplo n.º 3
0
 public void Configure(EntityTypeBuilder <Advertisment> builder)
 {
     builder.Property(c => c.Price).HasConversion(c => c.Value.Value, d => Price.FromLong(d));
     builder.Property(c => c.OwnerId).HasConversion(c => c.Value.ToString(), d => UserId.FromString(d));
     builder.Property(c => c.ApprovedBy).HasConversion(c => c.Value.ToString(), d => UserId.FromString(d));
     builder.Property(c => c.Text).HasConversion(c => c.Value, d => AdvertismentText.FromString(d));
     builder.Property(c => c.Title).HasConversion(c => c.Value, d => AdvertismentTitle.FromString(d));
 }
Ejemplo n.º 4
0
        public void Handle(SetTitle command)
        {
            var advertisement = advertisementsRepository.Load(command.Id);

            if (advertisement == null)
            {
                throw new InvalidOperationException($"آگهی با شناسه {command.Id} یافت نشد.");
            }
            advertisement.SetTitle(AdvertismentTitle.FromString(command.Title));
            unitOfWork.Commit();
        }