Esempio n. 1
0
        public void Update_ComFalha()
        {
            var batataFrita = new Receita()
            {
                Id          = 1,
                Title       = "Batata frita",
                Description = "Batata frita é aquele acompanhamento do qual todo mundo gosta e também é um aperitivo delicioso.",
                Ingredients = "Batata, óleo e sal a gosto.",
                Preparation = "1) Dê preferência à batata asterix, também conhecida como rosada ou portuguesa. Ela tem menos água do que os outros tipos de batata.\n2) Lave bem as batatas em água corrente e, se eles estiverem muito sujas, use uma escovinha para limpá-las.\n3) Descasque as batatas e deixe-as de molho: isso evita que elas escureçam.\n4) Depois, é só cortá-las do jeito que você preferir: em palitos grossos ou finos, em rodelas, chips…\n5) Seque bem as batatas com papel-toalha ou pano de prato limpo: isso vai fazer com que o óleo não espirre em você durante a fritura.\n6) Coloque óleo em uma panela alta e leve ao fogo. Para ver se o óleo está quente o suficiente, coloque um palito de fósforo dentro da panela: quando ele acender, é sinal de que o óleo está bom para ser usado. Retire o palito de fósforo.\n7) Coloque um pouco das batatas no panela e mexa com cuidado para que elas não grudem. Depois, pare de mexer. Quando as batatas estiverem esbranquiçadas, retire-as do óleo e coloque-as numa travessa com papel-toalha. Você pode fazer isso bem antes de as batatas serem servidas.\n8) Um pouco antes da refeição, esquente novamente o óleo e coloque as batatas já pré-fritas. Deixe que fritem até que fiquem douradinhas, retire do óleo e leve para uma travessa forrada com papel-toalha.\n9) Depois, é só colocar sal e servir sua batata frita crocante e sequinha!",
                ImageUrl    = "https://img.elo7.com.br/product/original/1DEEFB7/caixinha-embalagem-batata-frita-e-porcoes-peq-preto-500un-embalagem-food-truck.jpg"
            };

            var context = CreateTestContext();

            context.Add(batataFrita);
            context.SaveChanges();

            var controller = new ReceitasController(context);
            var viewModel  = new ReceitaViewModel(batataFrita.Id, "TESTETESTETESTETESTE", batataFrita.Description, batataFrita.Ingredients, batataFrita.Preparation, batataFrita.ImageUrl);

            Action act = () => controller.Update(1, viewModel);

            act.Should().Throw <Exception>()
            .WithMessage("Passa o título direito mano.");
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(Guid id, ReceitaViewModel receitaViewModel)
        {
            var receita = _mapper.Map <Core.Dominio.Entidades.Receita>(receitaViewModel);

            if (id != receita.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _repository.Editar(receita);
                    await _repository.SaveChangesAssincrono();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ReceitaExists(receita.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(RedirectToAction(nameof(Index)));
            }

            return(View(receita));
        }
Esempio n. 3
0
 public ReceitaPage()
 {
     receitaViewModel = new ReceitaViewModel();
     InitializeComponent();
     //set binding
     BindingContext = receitaViewModel;
 }
Esempio n. 4
0
        private static ReceitaViewModel CriarVMePopularListaDeCategoria(IEnumerable <Categoria> listaCategoria,
                                                                        ReceitaViewModel receitaVM = null)
        {
            if (receitaVM == null)
            {
                receitaVM = new ReceitaViewModel();
            }

            receitaVM.listaDeCategorias = new List <SelectListItem>();

            receitaVM.listaDeCategorias.Add(new SelectListItem
            {
                Text     = "Seleciona uma categoria",
                Value    = null,
                Selected = true
            });

            foreach (var item in listaCategoria)
            {
                receitaVM.listaDeCategorias.Add(new SelectListItem
                {
                    Text     = item.Titulo,
                    Value    = item.Id.ToString(),
                    Selected = item.Id == receitaVM.IdCategoria
                });
            }
            return(receitaVM);
        }
Esempio n. 5
0
        public async Task <IActionResult> Cadastrar()
        {
            IEnumerable <Categoria> listaCategoria = await _categoriaService.ObterListaCategoria();

            ReceitaViewModel receitaVM = CriarVMePopularListaDeCategoria(listaCategoria);

            return(View(receitaVM));
        }
Esempio n. 6
0
        private async Task <Receita> MapearVMeAtualizarCategoria(ReceitaViewModel receitaVm)
        {
            var receita = _mapper.Map <Receita>(receitaVm);

            receita.Categoria = await _categoriaService.ObterItem(receitaVm.IdCategoria);

            return(receita);
        }
        public ReceitaViewModel Add(ReceitaViewModel obj)
        {
            var modelObj = _mapper.Map <Receita>(obj);

            modelObj = _service.Add(modelObj);

            return(_mapper.Map <ReceitaViewModel>(modelObj));
        }
        public IActionResult Edit(Guid id, ReceitaViewModel receitaViewModel)
        {
            if (ModelState.ContainsKey("Categoria.Titulo") && ModelState.ContainsKey("Categoria.Descricao"))
            {
                ModelState["Categoria.Titulo"].Errors.Clear();
                ModelState["Categoria.Titulo"].ValidationState = ModelValidationState.Valid;

                ModelState["Categoria.Descricao"].Errors.Clear();
                ModelState["Categoria.Descricao"].ValidationState = ModelValidationState.Valid;
            }

            if (id != receitaViewModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (receitaViewModel.Foto != null)
                    {
                        if (receitaViewModel.Foto.FileName.Contains(".jpg") || receitaViewModel.Foto.FileName.Contains(".png"))
                        {
                            receitaViewModel = new Helper().SalvarImagem(receitaViewModel, _env.WebRootPath);
                        }
                    }

                    _appService.Atualizar(receitaViewModel);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ReceitaExists(receitaViewModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                var categorias = _categoriaAppService.ObterTodos().Result.ToList();

                if (categorias.Count() > 0)
                {
                    categorias.Insert(0, new CategoriaViewModel {
                        Id = Guid.Empty, Titulo = "Selecione..."
                    });
                    ViewBag.CategoriasList = categorias.ToList();
                }
            }

            return(View(receitaViewModel));
        }
Esempio n. 9
0
        public ReceitaViewModel Adicionar(ReceitaViewModel receitaViewModel)
        {
            var receita = _mapper.Map <Receita>(receitaViewModel);

            var retorno = _receitaService.Create(receita);

            var viewModel = _mapper.Map <ReceitaViewModel>(retorno);

            return(viewModel);
        }
Esempio n. 10
0
        public ActionResult CreateReceita([Bind(Exclude = "Id")] ReceitaViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Receita receita = Mapper.Map <ReceitaViewModel, Receita>(viewModel);
                receita.PessoaId = pessoaUsuarioAPL.SelecionarById(User.Identity.GetUserId()).Id;
                receitasAPL.Inserir(receita);
            }

            return(Redirect(Request.UrlReferrer.ToString()));
        }
Esempio n. 11
0
        public void Insert_DeveLancarUmaException()
        {
            var receitaViewModel = new ReceitaViewModel(1, "Coxinha asdasdasdasdsadsadasdsa5559598", "è baita", "entra dinheiro no caixa", "folder", "");
            var context          = CreateTestContext();
            var controller       = new ReceitasController(context);

            Action act = () => controller.Insert(receitaViewModel);

            act.Should().Throw <Exception>()
            .WithMessage("Passa o título direito mano.");
        }
Esempio n. 12
0
 public ActionResult Edit(ReceitaViewModel receita)
 {
     if (ModelState.IsValid)
     {
         var receitaDomain = Mapper.Map <ReceitaViewModel, Receita>(receita);
         _receitaApp.Update(receitaDomain);
         return(RedirectToAction("Index"));
     }
     ViewBag.Categorias = new SelectList(_categoriaApp.GetAll(), "CategoriaId", "Nome", receita.CategoriaId);
     return(View(receita));
 }
Esempio n. 13
0
 public async Task InsertAsync([FromBody] ReceitaViewModel request)
 {
     var receita = new Receita(request.Title)
     {
         ImagemUrl       = request.ImageUrl,
         Ingredientes    = request.Ingredients,
         Descricao       = request.Description,
         MetodoDePreparo = request.Preparation
     };
     await _service.Insert(receita);
 }
Esempio n. 14
0
        public ActionResult EditReceita(ReceitaViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Receita receita = Mapper.Map <ReceitaViewModel, Receita>(viewModel);
                receita.PessoaId = pessoaUsuarioAPL.SelecionarById(User.Identity.GetUserId()).Id;
                receitasAPL.Alterar(receita);
            }

            return(Redirect(Request.UrlReferrer.ToString()));
        }
Esempio n. 15
0
        public void Insert_DeveLancarException_QuandoExcederLimiteDeCaracteres()
        {
            // Arrange
            var receitaViewModel = new ReceitaViewModel(7, "Arrozzzzzzzzzzzzz", "Arroz", "Arroz", "Cozinha ele", "2wCEAAkGBxMTEhUSExMWFhUVFhUVGBUYFxUWFRUVFxUXFxUVFRYYHSggGBolHRUVITEhJSkrLi4uFx8zODMtNygtLisBCgoKDg0OGxAQGy0lHyUtLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLf");
            var context          = CreateTestContext();
            var controller       = new ReceitasController(context);

            // Act
            Action acao = () => controller.Insert(receitaViewModel);

            acao.Should().Throw <Exception>().WithMessage("PODE MAIOR QUE 10 NÃO MEU PARÇA");
        }
Esempio n. 16
0
        public void Insert_DeveInserirAReceitaSolicitada()
        {
            var receitaViewModel = new ReceitaViewModel(1, "Coxinha", "è baita", "entra dinheiro no caixa", "folder", "");
            var context          = CreateTestContext();
            var controller       = new ReceitasController(context);

            var result         = controller.Insert(receitaViewModel);
            var receitaDoBanco = context.Receitas.FirstOrDefault(receita => receita.Title == receitaViewModel.Title);

            result.Value.Should().BeEquivalentTo(receitaViewModel);
            receitaDoBanco.Should().NotBeNull("Por que ela deve ser existente no banco de dados.");
        }
        public async Task <IActionResult> Novo(NovoReceitaViewModel receita)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(receita));
                }
                if (receita != null)
                {
                    string[] data;
                    var      ingredientes = new List <IngredienteViewModel>();
                    if (receita.IngredientesTexto != null && receita.IngredientesTexto.Contains("|"))
                    {
                        data = receita.IngredientesTexto.Split("|");
                        foreach (var opcao in data)
                        {
                            var item = opcao.Split(",");
                            ingredientes.Add(new IngredienteViewModel()
                            {
                                NomeIngrediente = item[0], Quantidade = item[1]
                            });
                        }
                    }


                    //var receitaViewModel = new ReceitaViewModel();

                    //receitaViewModel.TituloReceita = collection["TituloReceita"];
                    //receitaViewModel.Rendimento = Convert.ToInt32(collection["Rendimento"]);
                    //receitaViewModel.TempoPreparo = Convert.ToInt32(collection["TempoPreparo"]);

                    var receitaVM = new ReceitaViewModel()
                    {
                        TituloReceita = receita.TituloReceita,
                        Rendimento    = receita.Rendimento,
                        TempoPreparo  = receita.TempoPreparo,
                        //Preparos = new PreparoViewModel() { Instrucoes = receita.Preparo}
                        Preparo = receita.Preparo
                    };

                    receitaVM.Ingredientes = ingredientes;
                    var retorno = _receitaService.AdicionarReceita(receitaVM);
                    //return Json(new { Resultado = retorno.Id });
                }

                return(RedirectToAction("Index", "Home"));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
Esempio n. 18
0
        public async Task <IActionResult> Editar(ReceitaViewModel receitaViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            Receita receita = await MapearVMeAtualizarCategoria(receitaViewModel);

            var httpResponse = await _receitaService.AlterarItem(receita.ID, receita);

            TempData["message"] = (httpResponse.IsSuccessStatusCode) ? "Salvo com sucesso!" : "Erro ao salvar. Tente novamente mais tarde.";
            return(View(receitaViewModel));
        }
Esempio n. 19
0
        public void GetAll_TodasReceitasCadastradas()
        {
            var escondidinho = new Receita("Escondidinho", "De batata com carne moída", "carne, batata, margarina, leite",
                                           "merge de tudo no liquidificador",
                                           "https://guiadacozinha.com.br/wp-content/uploads/2017/01/escondidinho-arroz-carne-moida-pure.jpg")
            {
                Id = 3
            };

            var batataFrita = new Receita("Batata Frita", "batata frita vegana", "batata, oleo, bacon",
                                          "Jogue tudo no oleo", "https://rechlanches.com.br/wp-content/uploads/2017/06/porcao-de-batatas-fritas-grande-com-bancon-rechlanches-joinville.jpg")
            {
                Id = 4
            };
            //insere as receitas

            var context = CreateTestContext();

            context.AddRange(escondidinho, batataFrita);
            context.SaveChanges();

            var controller = new ReceitasController(context);
            var receitas   = controller.GetAll();

            var viewModel1 = new ReceitaViewModel()
            {
                Id          = 3,
                Title       = "Escondidinho",
                Description = "De batata com carne moída",
                Ingredients = "carne, batata, margarina, leite",
                Preparation = "merge de tudo no liquidificador",
                ImageUrl    = "https://guiadacozinha.com.br/wp-content/uploads/2017/01/escondidinho-arroz-carne-moida-pure.jpg"
            };

            var viewModel2 = new ReceitaViewModel()
            {
                Id          = 4,
                Title       = "Batata Frita",
                Description = "batata frita vegana",
                Ingredients = "batata, oleo, bacon",
                Preparation = "Jogue tudo no oleo",
                ImageUrl    = "https://rechlanches.com.br/wp-content/uploads/2017/06/porcao-de-batatas-fritas-grande-com-bancon-rechlanches-joinville.jpg"
            };

            receitas.Value.Should().BeEquivalentTo(
                new List <ReceitaViewModel>()
            {
                viewModel1, viewModel2
            }
                );
        }
Esempio n. 20
0
        public async Task <IActionResult> Create(ReceitaViewModel receitaViewModel)
        {
            try
            {
                var receita = await receitaViewModel.ConverterArquivoParaBase64();

                await _receitaClient.SalvarAsync(receita);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
Esempio n. 21
0
        public async void InsertAsync_DeveInserirAReceitaSolicitada()
        {
            var receitaParaInserir = new ReceitaViewModel(Guid.Empty, "lasanha", "bastante carboidrato", "massa, queijo", "assar", "rec.com/las");
            var context            = CreateTestContext();

            var controller      = new ReceitasController(context);
            var receitaInserida = await controller.InsertAsync(receitaParaInserir);

            var receitaDoBanco = context
                                 .Receitas
                                 .FirstOrDefault(r => r.Id == receitaInserida.Value.Id);

            receitaDoBanco.Should().NotBeNull();
            receitaDoBanco.Id.Should().NotBeEmpty();
            receitaDoBanco.Titulo.Should().Be(receitaParaInserir.Title);
        }
Esempio n. 22
0
        public void Insert_DeveInserir()
        {
            // Arrange
            var receitaViewModel = new ReceitaViewModel(7, "Arroz", "Arroz", "Arroz", "Cozinha ele", "2wCEAAkGBxMTEhUSExMWFhUVFhUVGBUYFxUWFRUVFxUXFxUVFRYYHSggGBolHRUVITEhJSkrLi4uFx8zODMtNygtLisBCgoKDg0OGxAQGy0lHyUtLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLf");
            var context          = CreateTestContext();
            var controller       = new ReceitasController(context);

            // Act
            var result         = controller.Insert(receitaViewModel);
            var receitaDoBanco = context.Receitas.FirstOrDefaultAsync(receita => receita.Title == receitaViewModel.Title);

            //result.Value.Should().BeEquivalentTo(receitaViewModel);

            //Assert
            receitaDoBanco.Should().NotBeNull("Por que deve ter algo no banco");
            receitaDoBanco.Result.Should().BeEquivalentTo(receitaViewModel, c => c.Excluding(r => r.Id));
        }
        public async Task <IActionResult> Editar(long id, NovoReceitaViewModel receita)
        {
            try
            {
                // TODO: Add update logic hereif (collection != null)
                if (receita != null && id == receita.IdReceita)
                {
                    //var receitaViewModel = new ReceitaViewModel();

                    //receitaViewModel.IdReceita = Convert.ToInt32(collection["IdReceita"]);
                    //receitaViewModel.TituloReceita = collection["TituloReceita"];
                    //receitaViewModel.Rendimento = Convert.ToInt32(collection["Rendimento"]);
                    //receitaViewModel.TempoPreparo = Convert.ToInt32(collection["TempoPreparo"]);

                    var data         = receita.IngredientesTexto.Split("|");
                    var ingredientes = new List <IngredienteViewModel>();

                    foreach (var opcao in data)
                    {
                        var item = opcao.Split(",");
                        ingredientes.Add(new IngredienteViewModel()
                        {
                            NomeIngrediente = item[0], Quantidade = item[1]
                        });
                    }

                    var receitaVM = new ReceitaViewModel()
                    {
                        IdReceita     = receita.IdReceita,
                        TituloReceita = receita.TituloReceita,
                        Rendimento    = receita.Rendimento,
                        TempoPreparo  = receita.TempoPreparo,
                        Preparo       = receita.Preparo
                    };
                    receitaVM.Ingredientes = ingredientes;
                    var idReceita = _receitaService.AlterarReceita(receitaVM);
                }

                return(RedirectToAction("Index", "Home"));
            }
            catch
            {
                return(View());
            }
        }
Esempio n. 24
0
        public async Task <IActionResult> Cadastrar(ReceitaViewModel receitaVm)
        {
            if (!ModelState.IsValid)
            {
                return(View(CriarVMePopularListaDeCategoria(await _categoriaService.ObterListaCategoria(), receitaVm)));
            }

            Receita receita = await MapearVMeAtualizarCategoria(receitaVm);

            receita.Imagem = SalvarImagemERetornarGUID(receitaVm);

            if (await SalvarReceita(receita))
            {
                TempData["message"] = "Salvo com sucesso";
            }

            return(View("Listar", await _receitaService.ObterLista()));
        }
Esempio n. 25
0
        public async void UpdateAsync_DeveAtualizarAReceitaInserida()
        {
            var arrozPuro = new Receita("arroz", "branco", "só arroz", "cozinhar", "rec.com/arz");

            var context = CreateTestContext();

            context.Add(arrozPuro);
            await context.SaveChangesAsync();

            var controller = new ReceitasController(context);

            var arrozComFeijao =
                new ReceitaViewModel(
                    arrozPuro.Id, "arroz com feijão", "arroz branco e feijão preto", "só arroz e feijão", "cozinhar e misturar", "rec.com/aef");
            await controller.UpdateAsync(arrozComFeijao);

            context.Receitas
            .FirstOrDefault(r => r.Id == arrozComFeijao.Id)
            .Titulo.Should().Be(arrozComFeijao.Title);
        }
Esempio n. 26
0
        public async Task AdicionarReceita(ReceitaViewModel receita)
        {
            try
            {
                string url     = "https://localhost:5001/api/Receitas";
                var    data    = JsonConvert.SerializeObject(receita);
                var    content = new StringContent(data, Encoding.UTF8, "application/json");
                HttpResponseMessage response = null;
                response = await client.PostAsync(url, content);

                if (!response.IsSuccessStatusCode)
                {
                    throw new Exception("Erro ao incluir receita");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 27
0
        public ReceitaViewModel GetReceitaPorId(int id)
        {
            var receita = _repositorioReceita.Find(id);

            var modelReceita = new ReceitaViewModel()
            {
                Id              = receita.Id,
                Descricao       = receita.Descricao,
                Ingredientes    = new List <string>(receita.Ingredientes),
                ModoDePreparo   = new List <string>(receita.ModoDePreparo),
                LinkImagem      = receita.LinkImagem,
                LinkVideo       = receita.LinkVideo,
                Nome            = receita.Nome,
                NumeroDePorcoes = receita.NumeroDePorcoes,
                TempoDePreparo  = receita.TempoDePreparo,
                Tipo            = receita.Tipo
            };

            return(modelReceita);
        }
Esempio n. 28
0
        private string SalvarImagemERetornarGUID(ReceitaViewModel receita)
        {
            string guidImage = null;

            //2097152
            if (receita.ImagemDaReceita != null && (receita.ImagemDaReceita.FileName.ToUpper().EndsWith(".JPEG") ||
                                                    receita.ImagemDaReceita.FileName.ToUpper().EndsWith(".JPG") ||
                                                    receita.ImagemDaReceita.FileName.ToUpper().EndsWith(".PNG")))
            {
                var pathImagem = Path.Combine(_webHostEnvironment.WebRootPath, "imgs");

                guidImage  = Guid.NewGuid().ToString() + "_" + Path.GetExtension(receita.ImagemDaReceita.FileName.ToString());
                pathImagem = Path.Combine(pathImagem, guidImage);
                using (var fileStream = new FileStream(pathImagem, FileMode.Create))
                {
                    receita.ImagemDaReceita.CopyTo(fileStream);
                }
            }
            return(guidImage);
        }
Esempio n. 29
0
        public void Update_DeveEditarReceita()
        {
            // Arrange
            var receita = new Receita()
            {
                Id          = 10,
                Title       = "velho",
                Description = "Receita baita",
                ImageUrl    = "saas",
                Ingredients = "Varias paradas",
                Preparation = "Something"
            };
            var context = CreateTestContext();

            context.Receitas.Add(receita);
            context.SaveChanges();

            var receitaViewModel = new ReceitaViewModel()
            {
                Title       = "novo",
                Description = "Nova descricao"
            };
            var controller = new ReceitasController(context);

            // Act
            var result = controller.Update(10, receitaViewModel);

            // Assert

            var receitaNoBanco = context.Receitas.FirstOrDefault(r => r.Id == receita.Id);

            receitaNoBanco.Title.Should().Be(receitaViewModel.Title);
            receitaNoBanco.Description.Should().Be(receitaViewModel.Description);

            // Atualizar alguma coisa
            // Ter salvo no banco - done
            // Front passa o id, e os campos que serão atualizados
            // Fazer asserção se o  campo foi atualizado
        }
Esempio n. 30
0
        public async Task <IActionResult> Create(ReceitaViewModel receitaViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(receitaViewModel));
            }

            if (ModelState.IsValid)
            {
                var receita = _mapper.Map <Core.Dominio.Entidades.Receita>(receitaViewModel);

                receita.Id         = Guid.NewGuid();
                receita.CriadoEm   = DateTime.Now;
                receita.AlteradoEm = DateTime.Now;
                receita.Status     = Status.Ativo;

                _repository.Adicionar(receita);
                await _repository.SaveChangesAssincrono();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(receitaViewModel));
        }