Ejemplo n.º 1
0
        public void DescontoCadaTresQueijosPagaDois()
        {
            // Lanche
            Domain.Models.Lanche seisQueijos = new Domain.Models.Lanche {
                Id = 1, Nome = "SeisQueijos"
            };
            // Ingrediente
            Ingrediente queijo = _serviceIngrediente.Get(5);
            // Lanche Ingrediente
            LancheIngrediente li = new LancheIngrediente
            {
                Id             = 1,
                Lanche         = seisQueijos,
                LancheId       = 1,
                Ingrediente    = queijo,
                IngredienteId  = queijo.Id,
                QtdIngrediente = 6
            };

            // Add Lanche Ingrediente
            seisQueijos.LanchesIngredientes.Add(li);
            // Calcula preço do lanche
            seisQueijos.CalcularPreco();

            //6 queijos, desconta 2 queijos, da um total de 4 queijos
            var precoFinalDoLanche = queijo.Preco * 4;

            Assert.True(precoFinalDoLanche == seisQueijos.Preco);
        }
Ejemplo n.º 2
0
 public static LancheVM ToViewModel(this Domain.Models.Lanche lanche)
 {
     return(new LancheVM
     {
         Id = lanche.Id,
         Nome = lanche.Nome,
         Preco = lanche.Preco.ToString(),
         DataCadastro = lanche.DataCadastro.ToString("dd/MM/yyyy"),
         Ingredientes = Ingredientes(lanche.LanchesIngredientes).ToList()
     });
 }
Ejemplo n.º 3
0
        public void SemDescontoDeDezPorCentoPorTerAlfaceEBacon()
        {
            // Lanche
            Domain.Models.Lanche xOvo = new Domain.Models.Lanche {
                Id = 1, Nome = "xOvo"
            };
            // Ingredientes
            Ingrediente ovo    = _serviceIngrediente.Get(4);
            Ingrediente alface = _serviceIngrediente.Get(1);
            Ingrediente bacon  = _serviceIngrediente.Get(2);
            // União Lanche Ingrediente
            LancheIngrediente liOvo = new LancheIngrediente
            {
                Id             = 1,
                Lanche         = xOvo,
                LancheId       = 1,
                Ingrediente    = ovo,
                IngredienteId  = ovo.Id,
                QtdIngrediente = 10
            };
            LancheIngrediente liAlface = new LancheIngrediente
            {
                Id             = 1,
                Lanche         = xOvo,
                LancheId       = 1,
                Ingrediente    = alface,
                IngredienteId  = alface.Id,
                QtdIngrediente = 1
            };
            LancheIngrediente liBacon = new LancheIngrediente
            {
                Id             = 1,
                Lanche         = xOvo,
                LancheId       = 1,
                Ingrediente    = bacon,
                IngredienteId  = bacon.Id,
                QtdIngrediente = 1
            };

            // União Lanche Ingrediente
            xOvo.LanchesIngredientes.Add(liOvo);
            xOvo.LanchesIngredientes.Add(liAlface);
            xOvo.LanchesIngredientes.Add(liBacon);
            // Calcula Preco do lanche.
            xOvo.CalcularPreco();

            var precoDoLancheSemDesconto = (ovo.Preco * 10) + alface.Preco + bacon.Preco;
            var precoDoLancheComDesconto = precoDoLancheSemDesconto;

            Assert.True(precoDoLancheComDesconto == xOvo.Preco);
        }
Ejemplo n.º 4
0
        public void Update(Domain.Models.Lanche lanche)
        {
            //Para gatantir vou aparga as associaçoes e criar novamente

            // associações desse lanche
            var associacoes = _repoLancheIngrediente.Find(li => li.LancheId == lanche.Id);

            _repoLancheIngrediente.RemoveRange(associacoes);

            // refaz associações
            var novas_associacoes = lanche.LanchesIngredientes;

            _repoLancheIngrediente.AddRange(novas_associacoes);

            // Calcula Preço
            lanche.CalcularPreco();

            _repoLanche.Update(lanche);
        }
Ejemplo n.º 5
0
 public void Add(Domain.Models.Lanche entity)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 6
0
        public static void Initialize(LancheContext context)
        {
            if (context.Ingredientes.Any())
            {
                return;
            }

            #region Ingredientes

            var Alface = new Ingrediente {
                Nome = "Alface", Preco = 0.40m
            };
            var Bacon = new Ingrediente {
                Nome = "Bacon", Preco = 2.00m
            };
            var Hamburguer = new Ingrediente {
                Nome = "Hambúrguer de carne", Preco = 3.00m
            };
            var Ovo = new Ingrediente {
                Nome = "Ovo", Preco = 0.80m
            };
            var Queijo = new Ingrediente {
                Nome = "Queijo", Preco = 1.50m
            };

            var ingredientes = new List <Ingrediente> {
                Alface, Bacon, Hamburguer, Ovo, Queijo
            };

            context.Ingredientes.AddRange(ingredientes);

            #endregion

            #region Lanches

            var xSalada = new Domain.Models.Lanche {
                Nome = "X-Salada", Preco = 10.99m
            };
            var xBacon = new Domain.Models.Lanche {
                Nome = "X-Bacon", Preco = 12.99m
            };

            var lanches = new List <Domain.Models.Lanche> {
                xSalada, xBacon
            };

            context.Lanches.AddRange(lanches);

            #endregion

            #region LanchesIngredientes

            context.LanchesIngredientes.AddRange(new List <LancheIngrediente> {
                new LancheIngrediente {
                    Ingrediente = Alface, Lanche = xSalada, QtdIngrediente = 2
                },
                new LancheIngrediente {
                    Ingrediente = Ovo, Lanche = xSalada, QtdIngrediente = 2
                },
                new LancheIngrediente {
                    Ingrediente = Queijo, Lanche = xSalada, QtdIngrediente = 2
                },
                new LancheIngrediente {
                    Ingrediente = Hamburguer, Lanche = xSalada, QtdIngrediente = 2
                },
                new LancheIngrediente {
                    Ingrediente = Bacon, Lanche = xBacon, QtdIngrediente = 2
                },
                new LancheIngrediente {
                    Ingrediente = Queijo, Lanche = xBacon, QtdIngrediente = 2
                },
                new LancheIngrediente {
                    Ingrediente = Hamburguer, Lanche = xBacon, QtdIngrediente = 2
                }
            });

            #endregion

            context.SaveChanges();
        }
Ejemplo n.º 7
0
 public void Remove(Domain.Models.Lanche lanche)
 {
     _repoLanche.Remove(lanche);
 }
Ejemplo n.º 8
0
 public void Add(Domain.Models.Lanche lanche)
 {
     _repoLanche.Add(lanche);
 }