/// <summary> /// Listagem de Produtos /// </summary> /// <param name="indice"></param> /// <param name="limite"></param> /// <param name="totalRegistros"></param> /// <param name="totalPaginas"></param> /// <param name="descricao"></param> /// <returns></returns> public IList <ListagemProdutoDto> Listar(int indice, int?limite, out int totalRegistros, out int totalPaginas, string descricao = null) { var filtros = PredicateBuilder.New <Produto>(); if (!string.IsNullOrWhiteSpace(descricao)) { filtros.And(i => i.Descricao.ToLower().Trim().Contains(descricao.ToLower().Trim())); } var produtos = _repository.ListarPaginado(out totalRegistros, out totalPaginas, indice, limite, filtros); var retorno = AutoMapper <IList <Produto> > .CopyTo <IList <ListagemProdutoDto> >(produtos); return(retorno); }
/// <summary> /// Alteração de Produtos /// </summary> /// <param name="alteracao"></param> /// <returns></returns> public bool Alterar(AlteracaoProdutoDto alteracao) { if (alteracao is null) { throw new Exception("Produto inválido!"); } var produto = AutoMapper <AlteracaoProdutoDto> .CopyTo <Produto>(alteracao); var produtoBd = Obter(produto.IdProduto); if (!string.IsNullOrWhiteSpace(produto.Descricao)) { produtoBd.Descricao = produto.Descricao.Trim(); } if (produto.Valor > 0) { produtoBd.Valor = produto.Valor; } if (produto.Imagem != null && produto.Imagem.Length > 0) { produtoBd.Imagem = produto.Imagem; } if (!string.IsNullOrWhiteSpace(produto.TipoImagem)) { produtoBd.TipoImagem = produto.TipoImagem; } if (!produtoBd.IsValid(new ProdutoValidator(), out var errors)) { throw new Exception(string.Join(",", errors)); } if (_repository.VerificarProdutoExiste(produto.IdProduto)) { return(_repository.Alterar(produtoBd)); } throw new Exception("Produto não encontrado!"); }
/// <summary> /// Inclusão de Produtos /// </summary> /// <param name="inclusao"></param> /// <returns></returns> public bool Adicionar(InclusaoProdutoDto inclusao) { if (inclusao is null) { throw new Exception("Produto inválido!"); } var produto = AutoMapper <InclusaoProdutoDto> .CopyTo <Produto>(inclusao); if (!produto.IsValid(new ProdutoValidator(), out var errors)) { throw new Exception(string.Join(",", errors)); } var jaCadastrado = _repository.VerificarDescricaoJaCadastrado(produto.Descricao); if (jaCadastrado) { throw new Exception("Produto já cadastrado!"); } return(_repository.Adicionar(produto)); }