private AnuncioCadastradoEvent(Identity aggregateID, long aggregateVersion, string titulo, string descricao, decimal preco, CondicaoUso condicaoUso, bool aceitoTroca) : base(aggregateID, aggregateVersion)
 {
     Titulo      = titulo;
     Descricao   = descricao;
     Preco       = preco;
     CondicaoUso = condicaoUso;
     AceitoTroca = aceitoTroca;
 }
示例#2
0
        public Anuncio Handle(CadastrarAnuncioCommand command)
        {
            var condicaoUso = CondicaoUso.FromValueOrDescription(command.CondicaoUso);

            var anuncio = new Anuncio(command.Titulo, command.Descricao, command.Preco, condicaoUso, command.AceitoTroca);

            _anuncioEventStore.Store(anuncio);

            return(anuncio);
        }
示例#3
0
        public Anuncio(string titulo, string descricao, decimal preco, CondicaoUso condicaoUso, bool aceitoTroca)
        {
            new Contract().Requires()
            .HasMaxLen(titulo, 100, nameof(titulo), "Título pode ter até cem caracteres")
            .IsNotNullOrWhiteSpace(titulo, nameof(titulo), Messages.RequiredField(titulo))
            .IsNotNullOrWhiteSpace(descricao, nameof(descricao), Messages.RequiredField(descricao))
            .IsGreaterThan(preco, 0, nameof(Preco), "O Preço deve ser maior do que zero.")
            .IsNotNull(condicaoUso, nameof(CondicaoUso), Messages.RequiredField("Condição de Uso"))
            .ThrowExceptionIfInvalid();

            RaiseEvent(new AnuncioCadastradoEvent(Id, titulo, descricao, preco, condicaoUso, aceitoTroca));
        }
示例#4
0
 public Anuncio(string titulo, string descricao, decimal preco, CondicaoUso condicaoUso, bool aceitoTroca)
     : base(titulo, descricao, preco, condicaoUso, aceitoTroca)
 {
     _acessorios = new List <Identity>();
 }