public async Task <IActionResult> Create(ProdutoCreateViewModel produtoCreateViewModel)
        {
            if (!produtoCreateViewModel.Preco.ToString().EndsWith("3"))
            {
                ModelState.AddModelError("Preco", "O preço deve terminar em 3.");
            }
            if (ModelState.IsValid)
            {
                var fabricante = await fabricanteRepository.FindByIdAsync(produtoCreateViewModel.Fabricante);

                var produto = new Produto
                {
                    Nome       = produtoCreateViewModel.Nome,
                    Preco      = produtoCreateViewModel.Preco,
                    Fabricante = fabricante,
                    FotoUrl    = produtoCreateViewModel.Url
                };
                await produtoRepositorio.AddAsync(produto);

                return(RedirectToAction(nameof(Index)));
            }
            ViewBag.Fabricantes = (await fabricanteRepository.ListaFabricantesAsync())
                                  .Select(c => new SelectListItem()
            {
                Text = c.Nome, Value = c.Id.ToString()
            })
                                  .ToList();

            return(View(produtoCreateViewModel));
        }
示例#2
0
        public async Task <bool> Handle(CreateProdutoCommand request, CancellationToken cancellationToken)
        {
            var novoProduto = new Produto(request.Descricao, request.Valor, request.QuantidadeEstoque);

            await _produtoRepository.AddAsync(novoProduto);

            return(await _produtoRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken));
        }
        public async Task Create(CreateProdutoRequest createProductRequest)
        {
            if (createProductRequest.Preco > 0 && createProductRequest.QtdEstoque > 0)
            {
                var exists = await _produtoRepository.ExistsAsync(x => x.CodProduto.ToUpper() == createProductRequest.CodProduto.ToUpper() ||
                                                                  x.Nome.ToUpper() == createProductRequest.Nome.ToUpper());

                if (!exists)
                {
                    await _produtoRepository.AddAsync(_mapper.Map <Produto>(createProductRequest));

                    await _uow.CommitAsync();
                }
            }
        }
示例#4
0
        public async Task <IActionResult> PostAsync([FromBody] Produto item)
        {
            if (item == null)
            {
                return(BadRequest(new {
                    status = 400,
                    message = "Objeto inválido."
                }));
            }

            if (ModelState.IsValid)
            {
                var response = await _produtoRepository.AddAsync(item);

                if (response.Equals("success"))
                {
                    return(Ok(new {
                        status = HttpContext.Response.StatusCode,
                        message = "Cadastrado com sucesso.",
                        data = item,
                        token = TokenGenerator.ReBuildToken(Request.Headers["Authorization"])
                    }));
                }

                return(BadRequest(new {
                    status = 400,
                    message = response
                }));
            }
            else
            {
                return(BadRequest(new {
                    status = 400,
                    message = ModelState.Values.SelectMany(m => m.Errors)
                              .Select(e => e.ErrorMessage)
                              .ToList()
                }));
            }
        }
示例#5
0
        public async Task <bool> Adicionar(Produto produto)
        {
            if (!ExecutarValidacao(new ProdutoValidation(), produto))
            {
                return(false);
            }

            if (!await _categoriaRepository.Existe(c => c.id == produto.id_categoria))
            {
                Notificar("Categoria não encontrada");
                return(false);
            }
            if (await _produtoRepository.Existe(c => c.slug == produto.slug))
            {
                Notificar("Já existe um produto com o nome " + produto.nome);
                return(false);
            }
            produto.slug = produto.nome.Slugify();

            await _produtoRepository.AddAsync(produto);

            return(true);
        }
示例#6
0
 public Task <Produto> Post(Produto produto)
 {
     produto.DataHoraCadastro = DateTime.Now;
     return(repository.AddAsync(produto));
 }
示例#7
0
 public async Task <Produto> IniciarLeilaoProduto(Produto produto) => await _produtoRepository.AddAsync(produto);