Пример #1
0
        public LancheModel GetPorId(int id)
        {
            List <LancheModel> lanches = GetLanches();

            LancheModel lanche = lanches.Find(x => x.Id == id);

            return(lanche);
        }
Пример #2
0
        public decimal TCalcularDescontoMuitoQueijo(LancheModel lanche, decimal valor)
        {
            var fatorDesconto = Math.Floor((double)lanche.ListaIngredientes.Where(i => i.ID == 5).Count() / 3);

            var precoQueijo = valor;

            return(lanche.Preco - ((decimal)fatorDesconto * precoQueijo));
        }
Пример #3
0
        public decimal CalcularDescontoMuitoQueijo(LancheModel lanche)
        {
            var fatorDesconto = Math.Floor((double)lanche.ListaIngredientes.Where(i => i.ID == 5).Count() / 3);

            var precoQueijo = ((IngredienteModel)this.IngredienteLogic.Buscar(5)).Preco;

            return(lanche.Preco - ((decimal)fatorDesconto * precoQueijo));
        }
Пример #4
0
        public IHttpActionResult Get(int id)
        {
            if (id == 0)
            {
                return(BadRequest());
            }

            LancheModel lanche = dados.GetPorId(id);

            return(Ok(lanche));
        }
Пример #5
0
 public IActionResult Atualizar(LancheModel lanche)
 {
     try
     {
         return(new Util().verificaStatus(_ILanche.Atualizar(lanche)));
     }
     catch (Exception ex)
     {
         return(BadRequest(new Error(HttpStatusCode.InternalServerError, "Lanche.Atualizar()", ex.Message)));
     }
 }
Пример #6
0
        public LancheModel InsertLanche(LancheModel lancheModel)
        {
            var lanche = _mapper.Map <LancheModel,
                                      DataBase.Lanche>(lancheModel);

            var result = _repository.InsertLanchee(lanche);

            _repository.InsertIngredientes(result.ID, lancheModel.IngredientesIds);

            return(_mapper.Map <DataBase.Lanche,
                                LancheModel>(result));
        }
Пример #7
0
        public void PromocaoLight(LancheModel lanche)
        {
            var alfaceModel = this.IngredienteLogic.Buscar(1);
            var baconModel  = this.IngredienteLogic.Buscar(2);

            if (lanche.ListaIngredientes.Any(i => i.ID == alfaceModel.ID) && !lanche.ListaIngredientes.Any(i => i.ID == baconModel.ID))
            {
                lanche.Promocoes.Add((PromocaoModel)ConverteEntityToModel(this.PromocaoRepository.Buscar(1)));
            }
            else
            {
                //return null;
            }
        }
Пример #8
0
        public void PromocaoMuitoQueijo(LancheModel lanche)
        {
            var queijoModel = this.IngredienteLogic.Buscar(5);

            var QuantidadeCarne = lanche.ListaIngredientes.Where(i => i.ID == queijoModel.ID).Count();

            if (QuantidadeCarne >= 3)
            {
                lanche.Promocoes.Add((PromocaoModel)ConverteEntityToModel(this.PromocaoRepository.Buscar(2)));
            }
            else
            {
                //return null;
            }
        }
Пример #9
0
 public string Inserir(LancheModel lanche)
 {
     try
     {
         DynamicParameters parameters = new DynamicParameters();
         parameters.Add("@NOME", lanche.nomeLanche, DbType.String, ParameterDirection.Input);
         return(Executar("SP_LANCHE_INSERIR", parameters, CommandType.StoredProcedure));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
     finally
     {
         Dispose();
     }
 }
Пример #10
0
        public ActionResult Create(LancheModel lanche)
        {
            try
            {
                _restRequest.Resource = "Home";
                _restRequest.Method   = Method.POST;

                _restRequest.AddJsonBody(lanche);

                _restClient.Execute(_restRequest);
                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
Пример #11
0
        public void PromocaoMuitaCarne()
        {
            //Alface 1
            //Bacon 2
            //Hamburguer 3
            //ovo 4
            //Queijo 5
            var                     expected         = 6;
            var                     valorCarne       = 3;
            PromocaoLogic           PromocaoLogic    = new PromocaoLogic();
            IngredienteLogic        IngredienteLogic = new DextraLanches.Logic.Implements.IngredienteLogic();
            LancheModel             model            = new LancheModel();
            List <IngredienteModel> ingredientes     = new List <IngredienteModel>();

            ingredientes = IngredienteLogic.Buscar().Cast <IngredienteModel>().ToList();

            model.ListaIngredientes.Add(new IngredienteModel()
            {
                Nome      = "Hambúrguer de carne",
                Descricao = "Hambúrguer de carne",
                ID        = 3,
                Preco     = 3.00M
            });
            model.ListaIngredientes.Add(new IngredienteModel()
            {
                Nome      = "Hambúrguer de carne",
                Descricao = "Hambúrguer de carne",
                ID        = 3,
                Preco     = 3.00M
            });
            model.ListaIngredientes.Add(new IngredienteModel()
            {
                Nome      = "Hambúrguer de carne",
                Descricao = "Hambúrguer de carne",
                ID        = 3,
                Preco     = 3.00M
            });

            model = (LancheModel)PromocaoLogic.BuscarPorLanche(model);

            var result = PromocaoLogic.TCalcularDescontoMuitaCarne((LancheModel)model, valorCarne);



            Assert.AreEqual(expected, result);
        }
Пример #12
0
        public LancheModel XBurguer()
        {
            List <IngredienteModel> ing    = new List <IngredienteModel>();
            LancheModel             lanche = new LancheModel();

            ing.Add(GetIngredientePorId(1));
            ing.Add(GetIngredientePorId(2));

            double total = ing.Sum(x => x.Preco);

            lanche.Id    = 2;
            lanche.Nome  = "X-Burguer";
            lanche.Preco = total;
            //lanche.Imagem = "/images/xburguer.png";
            lanche.Ingredientes = ing;

            return(lanche);
        }
Пример #13
0
        public BaseModel ConvertEntityToModel(BaseEntity e)
        {
            LancheModel m = new LancheModel();

            m.Nome              = e.Nome;
            m.Descricao         = e.Descricao;
            m.ID                = e.ID;
            m.ContemPromocao    = ((LancheEntity)e).ContemPromocao;
            m.PrecoPromocional  = ((LancheEntity)e).PrecoPromocional;
            m.PromocaoUtilizada = ((LancheEntity)e).PromocaoUtilizada != null ? (PromocaoModel)this.PromocaoLogic.ConverteEntityToModel(((LancheEntity)e).PromocaoUtilizada) : m.PromocaoUtilizada;
            foreach (var ingrediente in ((LancheEntity)e).Ingredientes)
            {
                m.ListaIngredientes.Add((IngredienteModel)IngredienteLogic.ConvertEntityToModel(ingrediente));

                m.Ingredientes += ", " + ingrediente.Nome;
            }

            return(m);
        }
Пример #14
0
        public LancheModel XEggBacon()
        {
            List <IngredienteModel> ing    = new List <IngredienteModel>();
            LancheModel             lanche = new LancheModel();
            string ingString = "";

            ing.Add(GetIngredientePorId(1));
            ing.Add(GetIngredientePorId(2));
            ing.Add(GetIngredientePorId(3));
            ing.Add(GetIngredientePorId(4));

            double total = ing.Sum(x => x.Preco);

            lanche.Id    = 4;
            lanche.Nome  = "X-Egg Bacon";
            lanche.Preco = total;
            //lanche.Imagem = "/images/xeggbacon.png";
            lanche.Ingredientes = ing;

            return(lanche);
        }
Пример #15
0
        /// <summary>
        /// Método para receber uma lista de ingredientes e montar um lanche.
        /// Este método não aplica a promoção.
        /// </summary>
        /// <param name="?"></param>
        /// <returns></returns>
        public LancheModel MontarLanche(List <long> Ingredientes)
        {
            List <IngredienteModel> ListaIngredientes = new List <IngredienteModel>();

            for (int i = 0; i < Ingredientes.Count; i++)
            {
                ListaIngredientes.Add((IngredienteModel)this.IngredienteLogic.Buscar(Ingredientes[i]));
            }

            LancheModel LancheMontado = new LancheModel();

            LancheMontado.Nome              = "Meu Lanche";
            LancheMontado.Descricao         = "Lanche montado pelo cliente.";
            LancheMontado.ListaIngredientes = ListaIngredientes;

            LancheMontado = (LancheModel)this.PromocaoLogic.BuscarPorLanche(LancheMontado);



            return(LancheMontado);
        }
Пример #16
0
        /// <summary>
        /// Método para receber um lanche e verificar as promoções para este lanche.
        /// </summary>
        /// <param name="LancheModel"></param>
        /// <returns></returns>
        public Models.Abstraction.BaseModel BuscarPorLanche(LancheModel LancheModel)
        {
            if (LancheModel.ListaIngredientes.Count > 0)
            {
                this.PromocaoLight(LancheModel);
                this.PromocaoMuitaCarne(LancheModel);
                this.PromocaoMuitoQueijo(LancheModel);
            }

            if (LancheModel.Promocoes.Count > 0)
            {
                var promo = LancheModel.Promocoes.Max(p => p.ID);
                LancheModel.ContemPromocao = true;

                switch (promo)
                {
                case 1:
                    LancheModel.PrecoPromocional  = this.CalcularDescontoLight(LancheModel);
                    LancheModel.PromocaoUtilizada = LancheModel.Promocoes.Where(p => p.ID == 1).First();
                    break;

                case 3:
                    LancheModel.PrecoPromocional  = this.CalcularDescontoMuitaCarne(LancheModel);
                    LancheModel.PromocaoUtilizada = LancheModel.Promocoes.Where(p => p.ID == 3).First();

                    break;

                case 2:
                    LancheModel.PrecoPromocional  = this.CalcularDescontoMuitoQueijo(LancheModel);
                    LancheModel.PromocaoUtilizada = LancheModel.Promocoes.Where(p => p.ID == 2).First();
                    break;
                }
            }

            return(LancheModel);
        }
Пример #17
0
 public decimal TCalcularDescontoLight(LancheModel lanche)
 {
     return(lanche.Preco - ((10 * lanche.Preco) / 100));
 }
        public LancheModel Post(LancheModel lanche)
        {
            var result = _service.InsertLanche(lanche);

            return(result);
        }