Esempio n. 1
0
        public IHttpActionResult ObterParaFiltro(string codigoInterno, string tipoValidacao = null, string dadosAdicionaisValidacao = null)
        {
            if (string.IsNullOrWhiteSpace(codigoInterno))
            {
                return(this.ErroValidacao("O código do produto é obrigatório."));
            }

            dadosAdicionaisValidacao = new ConversorDadosAdicionaisParaValidacao()
                                       .ConverterDadosCodificados(dadosAdicionaisValidacao);

            var estrategiaValidacao = ValidacaoFactory.ObterEstrategiaFiltro(this, tipoValidacao);

            using (var sessao = new GDATransaction())
            {
                var validacao = estrategiaValidacao.ValidarAntesBusca(sessao, codigoInterno, dadosAdicionaisValidacao);

                if (validacao != null)
                {
                    return(validacao);
                }

                var produto = ProdutoDAO.Instance.GetByCodInterno(sessao, codigoInterno);

                if (produto == null)
                {
                    return(this.NaoEncontrado(string.Format("Produto {0} não encontrado.", codigoInterno)));
                }

                validacao = estrategiaValidacao.ValidarDepoisBusca(sessao, codigoInterno, dadosAdicionaisValidacao, produto);

                if (validacao != null)
                {
                    return(validacao);
                }

                var produtoDto = estrategiaValidacao.ObterProduto(sessao, dadosAdicionaisValidacao, produto);
                return(this.Item(produtoDto));
            }
        }
Esempio n. 2
0
        public IHttpActionResult ObterFiltro(int?id = null, string nome = null, string tipoValidacao = null)
        {
            if (id == null && string.IsNullOrWhiteSpace(nome))
            {
                return(this.ErroValidacao("Pelo menos um filtro (id ou nome) deve ser informado."));
            }

            var estrategiaValidacao = ValidacaoFactory.ObterEstrategiaFiltro(this, tipoValidacao);

            using (var sessao = new GDATransaction())
            {
                var validacao = estrategiaValidacao.ValidarAntesBusca(sessao, id, nome);

                if (validacao != null)
                {
                    return(validacao);
                }

                var clientes = ClienteDAO.Instance.ObterClientesPorIdENome(
                    sessao,
                    id.GetValueOrDefault(),
                    nome,
                    0,
                    10);

                clientes  = clientes.ToList();
                validacao = estrategiaValidacao.ValidarDepoisBusca(sessao, id, nome, ref clientes);

                if (validacao != null)
                {
                    return(validacao);
                }

                return(this.Lista(clientes.Select(c => new ClienteDto(c, tipoValidacao))));
            }
        }