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)); } }
public IHttpActionResult CalcularAreaM2([FromBody] Models.Produtos.V1.CalculoAreaM2.DadosProdutoDto dadosProduto) { if (dadosProduto == null) { return(this.ErroValidacao("Os dados do produto são obrigatórios.")); } dadosProduto.DadosAdicionaisValidacao = new ConversorDadosAdicionaisParaValidacao() .ConverterDadosCodificados(dadosProduto.DadosAdicionaisValidacao); var estrategiaValidacao = ValidacaoFactory.ObterEstrategiaCalculoAreaM2(this, dadosProduto.TipoValidacao); using (var sessao = new GDATransaction()) { var validacao = estrategiaValidacao.ValidarAntesCalculo(sessao, dadosProduto.DadosAdicionaisValidacao); if (validacao != null) { return(validacao); } var areaCalculada = new AreaCalculadaDto { AreaM2 = this.CalcularAreaM2Real(sessao, dadosProduto), AreaM2Calculo = this.CalcularAreaM2Calculo(sessao, dadosProduto, true), AreaM2CalculoSemChapaDeVidro = this.CalcularAreaM2Calculo(sessao, dadosProduto, false), }; validacao = estrategiaValidacao.ValidarDepoisCalculo(sessao, areaCalculada, dadosProduto.DadosAdicionaisValidacao); if (validacao != null) { return(validacao); } return(this.Item(areaCalculada)); } }
public IHttpActionResult CalcularTotal([FromBody] Models.Produtos.V1.CalculoTotal.DadosProdutoDto dadosProduto) { if (dadosProduto == null) { return(this.ErroValidacao("Os dados do produto são obrigatórios.")); } dadosProduto.DadosAdicionaisValidacao = new ConversorDadosAdicionaisParaValidacao() .ConverterDadosCodificados(dadosProduto.DadosAdicionaisValidacao); var estrategiaValidacao = ValidacaoFactory.ObterEstrategiaCalculoTotal(this, dadosProduto.TipoValidacao); using (var sessao = new GDATransaction()) { var validacao = estrategiaValidacao.ValidarAntesCalculo(sessao, dadosProduto.DadosAdicionaisValidacao); if (validacao != null) { return(validacao); } var totalCalculado = new TotalCalculadoDto { Total = this.CalcularTotal(sessao, dadosProduto), }; validacao = estrategiaValidacao.ValidarDepoisCalculo(sessao, totalCalculado, dadosProduto.DadosAdicionaisValidacao); if (validacao != null) { return(validacao); } return(this.Item(totalCalculado)); } }
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)))); } }