Exemplo n.º 1
0
 public void AlterarNome(string nome)
 {
     ValidadorDeRegras.Novo()
     .Quando(string.IsNullOrEmpty(nome), Resource.NomeInvalido)
     .DispararExcecaoSeExistir();
     Nome = nome;
 }
Exemplo n.º 2
0
        public TipoDeCerveja Converter(string tipoDeCerveja)
        {
            ValidadorDeRegras.Novo()
            .Quando(!Enum.TryParse <TipoDeCerveja>(tipoDeCerveja, out var tipoDeCervejaConvertido),
                    Resource.TipoDeCervejaInválida).DispararExcecaoSeExistir();

            return(tipoDeCervejaConvertido);
        }
Exemplo n.º 3
0
        public void AlterarQuantidade(int quantidadeEsperada)
        {
            ValidadorDeRegras.Novo()
            .Quando(quantidadeEsperada < 0, Resource.QuantidadeInvalida)
            .DispararExcecaoSeExistir();

            Quantidade = quantidadeEsperada;
        }
Exemplo n.º 4
0
        public void DecrementarQuantidade(int quantidadeASerReduzida)
        {
            ValidadorDeRegras.Novo()
            .Quando(Quantidade < Quantidade - quantidadeASerReduzida || Quantidade - quantidadeASerReduzida < 0, Resource.QuantidadeReduzidaEhInvalida)
            .DispararExcecaoSeExistir();

            Quantidade -= quantidadeASerReduzida;
        }
Exemplo n.º 5
0
        public void IncrementarQuantidade(int quantidadeASerAdicionada)
        {
            ValidadorDeRegras.Novo()
            .Quando(Quantidade > Quantidade + quantidadeASerAdicionada, Resource.QuantidadeAdicionadaEhInvalida)
            .DispararExcecaoSeExistir();

            Quantidade += quantidadeASerAdicionada;
        }
Exemplo n.º 6
0
        public Pedido(Cerveja cerveja, int quantidade)
        {
            ValidadorDeRegras.Novo()
            .Quando(quantidade < 0, Resource.QuantidadeInvalida)
            .DispararExcecaoSeExistir();

            Cerveja    = cerveja;
            Quantidade = quantidade;
            Valor      = cerveja.Preco * quantidade;
        }
Exemplo n.º 7
0
        public void ValidarVenda(List <Lote> lotesComACervejaDesejada, Pedido pedido)
        {
            var quantidadeTotalQueSeTemNosLotes = 0;

            lotesComACervejaDesejada.ForEach(lote =>
                                             quantidadeTotalQueSeTemNosLotes += lote.Quantidade);

            ValidadorDeRegras.Novo()
            .Quando(quantidadeTotalQueSeTemNosLotes < pedido.Quantidade, Resource.QuantidadeIndisponivel)
            .DispararExcecaoSeExistir();
        }
Exemplo n.º 8
0
        public Lote(Cerveja cerveja, int quantidade)
        {
            ValidadorDeRegras.Novo()
            .Quando(quantidade < 0, Resource.QuantidadeInvalida)
            .Quando(cerveja == null, Resource.CervejaInvalida)
            .DispararExcecaoSeExistir();

            Cerveja       = cerveja;
            Quantidade    = quantidade;
            Identificador = DateTime.Now.ToString("yyyyMMdd");
        }
Exemplo n.º 9
0
        public Cerveja(string nome, double preco, string descricao, TipoDeCerveja tipo)
        {
            ValidadorDeRegras.Novo()
            .Quando(preco <= 0, Resource.PrecoInvalido)
            .Quando(string.IsNullOrEmpty(nome), Resource.NomeInvalido)
            .DispararExcecaoSeExistir();

            Nome      = nome;
            Preco     = preco;
            Descricao = descricao;
            Tipo      = tipo;
        }
Exemplo n.º 10
0
        public Comanda(List <Pedido> pedidos)
        {
            //TODO como fazer o InlineData receber uma lista vazia?
            ValidadorDeRegras.Novo()
            .Quando(pedidos.Count == 0, Resource.ComandaSemPedidos)
            .DispararExcecaoSeExistir();

            Pedidos    = pedidos;
            ValorTotal = 0;

            pedidos.ForEach(pedido =>
                            ValorTotal += pedido.Valor);
        }