public ActionResult grid(FiltroPesquisa pesq, int page = 1, int pageSize = 4) { PagedList <Lista_Produtos2> pageList; using (null) { ProdutoDao dao = new ProdutoDao(); IList <Lista_Produtos2> listaProdutos; IList <FiltroDesconto> filtroDesconto; IList <FiltroPrecoProduto> filtroPrecoProduto; IList <FiltroOrder> filtroOrder; dao.ltProdutos(pesq, out listaProdutos, out filtroDesconto, out filtroPrecoProduto, out filtroOrder); //Paginação da webSite. PagedList <Lista_Produtos2> pl = new PagedList <Lista_Produtos2>(listaProdutos, page, pageSize); //ViewBag.listaProdutos = pageList; pageList = pl; ViewBag.filtroDesconto = filtroDesconto; ViewBag.filtroPrecoProduto = filtroPrecoProduto; ViewBag.foCount = filtroOrder.Count(); ViewBag.filtroOrder = filtroOrder; ViewBag.pesq = pesq; ViewBag.VerificaFDesc = pesq.desc; ViewBag.VerificaFPProduto = pesq.preco; ViewBag.page = page; //ViewBag.order = Order; } return(View(pageList)); }
public string TesteAcesso() { try { using (CadsusServicePortTypeClient consultaCNS = new CadsusServicePortTypeClient("CadsusServicePort")) { //Atribui usuário e senha de acesso ao WebService consultaCNS.ClientCredentials.UserName.UserName = "******"; consultaCNS.ClientCredentials.UserName.Password = "******"; //Parâmetros de Pesquisa padrão requestPesquisar paramsPesquisa = new requestPesquisar(); FiltroPesquisa filtroPesquisa = new FiltroPesquisa(); filtroPesquisa.nomeCompleto = new NomeCompletoType() { Nome = "SERGIO ARAUJO CORREIA LIMA" }; filtroPesquisa.tipoPesquisa = TipoPesquisaType.IDENTICA; paramsPesquisa.FiltroPesquisa = filtroPesquisa; paramsPesquisa.CNESUsuario = new CNESUsuarioType() { CNES = "6963447", Usuario = "LEONARDO" }; paramsPesquisa.higienizar = false; ResultadoPesquisa[] result = consultaCNS.pesquisar(paramsPesquisa); } } catch (System.ServiceModel.FaultException <AcessoDATASUSv2.SvcAcessoDATASUS.MSFalha> errWS) { List <string> arMsgsErro = new List <string>(); foreach (MensagemType msgErrosWS in errWS.Detail.Mensagem) { arMsgsErro.Add(msgErrosWS.descricao); } return("A consulta retornou a(s) seguinte(s) mensagem(ns): " + String.Join(" / ", arMsgsErro.ToArray())); } catch (Exception ex) { return("ERRO -> " + ex.Message); } return("OK"); }
public DataTable ConsultaFederal(string pNome, string pNomeMae, string pNomePai, DateTime pDataNascimento, string pNumeroCNS, string pCPF, out string msgRetorno) { msgRetorno = String.Empty; /*DataTable de retorno*/ DataTable dtRet = new DataTable(); dtRet.Columns.Add(new DataColumn("NOME", typeof(System.String))); dtRet.Columns.Add(new DataColumn("NOME_MAE", typeof(System.String))); dtRet.Columns.Add(new DataColumn("NOME_PAI", typeof(System.String))); dtRet.Columns.Add(new DataColumn("DATA_NASCIMENTO", typeof(System.DateTime))); dtRet.Columns.Add(new DataColumn("TIPO_CARTAO", typeof(System.String))); dtRet.Columns.Add(new DataColumn("NUMERO_CARTAO", typeof(System.String))); dtRet.Columns.Add(new DataColumn("MUNICIPIO_RESIDENCIA", typeof(System.String))); dtRet.Columns.Add((new DataColumn("ORIGEM_DADO", typeof(System.String)))); //Chamada ao WebService do DATASUS try { using (CadsusServicePortTypeClient consultaCNS = new CadsusServicePortTypeClient(ConfigurationManager.AppSettings["EndpointConsultaCNSConfig"].ToString())) { //Atribui usuário e senha de acesso ao WebService e dados do Estabelecimento de Saúde consultaCNS.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["UserNameWebServiceDATASUS"].ToString(); consultaCNS.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["PasswordWebServiceDATASUS"].ToString(); CNESUsuarioType dadosCNES = new CNESUsuarioType() { CNES = ConfigurationManager.AppSettings["CNESWebServiceDATASUS"].ToString(), Usuario = ConfigurationManager.AppSettings["UsuarioCNESWebServiceDATASUS"].ToString() }; //Caso o nº do CNS seja informado, é outro tipo de consulta, específica (outro método do WS a ser chamado). A abaixo é a consulta por outros dados if (String.IsNullOrEmpty(pNumeroCNS)) { //Inicializa filtro de pesquisa FiltroPesquisa filtroPesquisa = new FiltroPesquisa(); filtroPesquisa.tipoPesquisa = TipoPesquisaType.APROXIMADA; if (!String.IsNullOrEmpty(pNome)) { filtroPesquisa.nomeCompleto = new NomeCompletoType() { Nome = pNome } } ; if (!String.IsNullOrEmpty(pNomeMae)) { filtroPesquisa.Mae = new NomeCompletoType() { Nome = pNomeMae } } ; if (!String.IsNullOrEmpty(pNomePai)) { filtroPesquisa.Pai = new NomeCompletoType() { Nome = pNomePai } } ; if (!pDataNascimento.Equals(DateTime.MinValue)) { filtroPesquisa.dataNascimento = pDataNascimento; } if (!String.IsNullOrEmpty(pCPF)) { filtroPesquisa.CPF = new CPFType() { numeroCPF = pCPF } } ; //Prepara objeto para fazer a requisição ao WebService requestPesquisar paramsPesquisa = new requestPesquisar(); paramsPesquisa.FiltroPesquisa = filtroPesquisa; paramsPesquisa.CNESUsuario = dadosCNES; paramsPesquisa.higienizar = false; //Chamada ao WebService ResultadoPesquisa[] resultWS = consultaCNS.pesquisar(paramsPesquisa); //Transporta resultados para o DataTable de retorno. Se a pesquisa não retornou registros, é disparada uma exceção que é tratada no primeiro "catch". foreach (ResultadoPesquisa result in resultWS) { string munResidencia = "NÃO DISPONÍVEL"; if (result.MunicipioResidencia != null) { munResidencia = String.Format("{0} - {1}", result.MunicipioResidencia.codigoMunicipio, result.MunicipioResidencia.nomeMunicipio); } dtRet.Rows.Add( result.NomeCompleto.Nome, result.Mae.Nome, result.Pai.Nome, result.dataNascimento, (result.CNS.tipoCartao.Equals(TipoCNSType.D) ? "DEFINITIVO" : "PROVISORIO"), result.CNS.numeroCNS, munResidencia, "BASE FEDERAL"); } } else //Consulta específica por número de Cartão SUS. { //Filtro de Pesquisa CNSType filtroConsulta = new CNSType(); filtroConsulta.numeroCNS = pNumeroCNS; //Prepara objeto para requisição ao WebService requestConsultar paramsConsulta = new requestConsultar(); paramsConsulta.CNESUsuario = dadosCNES; paramsConsulta.CNS = filtroConsulta; responseConsultar resultWS = consultaCNS.consultar(paramsConsulta); foreach (CNSType cartao in resultWS.UsuarioSUS.Cartoes) { //Coloca registro no DataTable de retorno: para cada nº do cartão do SUS encontrado. dtRet.Rows.Add( resultWS.UsuarioSUS.NomeCompleto.Nome, (resultWS.UsuarioSUS.Mae != null) ? resultWS.UsuarioSUS.Mae.Nome : "NÃO DISPONÍVEL", (resultWS.UsuarioSUS.Pai != null) ? resultWS.UsuarioSUS.Pai.Nome : "NÃO DISPONIVEL", resultWS.UsuarioSUS.dataNascimento, cartao.tipoCartao.Equals(TipoCNSType.D) ? "DEFINITIVO" : "PROVISÓRIO", cartao.numeroCNS, (resultWS.UsuarioSUS.Enderecos.Endereco.Municipio != null) ? String.Format("{0} - {1}", resultWS.UsuarioSUS.Enderecos.Endereco.Municipio.codigoMunicipio, resultWS.UsuarioSUS.Enderecos.Endereco.Municipio.nomeMunicipio) : "NÃO DISPONÍVEL", "BASE FEDERAL" ); } } } } catch (System.ServiceModel.FaultException <AcessoDATASUSv2.SvcAcessoDATASUS.MSFalha> errWS) //Erros enviados pelo WebService { List <string> arMsgsErro = new List <string>(); foreach (MensagemType msgErrosWS in errWS.Detail.Mensagem) { arMsgsErro.Add(msgErrosWS.descricao); } msgRetorno = "A consulta retornou a(s) seguinte(s) mensagem(ns): " + String.Join(" / ", arMsgsErro.ToArray()); dtRet = null; } catch (Exception ex) //Erro geral da aplicação { msgRetorno = "[ERRO] " + ex.Message; dtRet = null; } return(dtRet); }
public void ltProdutos(FiltroPesquisa pesq, out IList <Lista_Produtos2> IlistaProdutos, out IList <FiltroDesconto> IfiltroDesconto, out IList <FiltroPrecoProduto> IfiltroPrecoProduto, out IList <FiltroOrder> IfiltroOrder) { IList <String> IDesc = null; if (!String.IsNullOrEmpty(pesq.desc)) { IDesc = pesq.desc.Split(','); } IList <String> IPreco = null; if (!String.IsNullOrEmpty(pesq.preco)) { IPreco = pesq.preco.Split(','); } using (var dao = new EntidadeContext()) { #region LISTA DE PRODUTOS //Order estabelece tipo de categória que ele é. //Ex: categória, Subcategoria ou Subcategoria2. IList <Lista_Produtos2> lista = dao.Lista_Produtos2.ToList(); #endregion #region FILTRO CATEGÓRIA //if (pesq.busca != null) if (!String.IsNullOrEmpty(pesq.busca)) { List <Lista_Produtos2> linha = new List <Lista_Produtos2>(); foreach (var lt in lista) { bool item = Regex.IsMatch(lt.Titulo_produto.ToLower(), pesq.busca.ToLower()); if (item) { linha.Add(lt); } } lista = linha; } var FiltroCat = (from gd in lista select new { gd.id_categoria, gd.nm_categoria, gd.id_subcategoria, gd.nm_subcategoria, gd.id_subcategoria2, gd.nm_subcategoria2, }); List <FiltroOrder> filtroOrder = new List <FiltroOrder>(); foreach (var gd in FiltroCat) { FiltroOrder item = new Models.FiltraDados.FiltroOrder(); Categoria cat = new Categoria() { id_categoria = gd.id_categoria, nm_categoria = gd.nm_categoria }; Subcategoria subcat = new Subcategoria() { id_categoria = gd.id_categoria, id_subcategoria = gd.id_subcategoria, nm_subcategoria = gd.nm_subcategoria }; Subcategoria2 subcat2 = new Subcategoria2() { id_categoria = gd.id_categoria, id_subcategoria2 = gd.id_subcategoria2, nm_subcategoria2 = gd.nm_subcategoria2 }; item.categorias = cat; item.Subcategorias = subcat; item.Subcategorias2 = subcat2; filtroOrder.Add(item); } //OBS: O FINAL DESSE CÓDIGO SE ENCONTRA EM "FILTRO (PESQUISA DA PÁGINA)" #endregion #region FILTRO (PESQUISA DA PÁGINA) //OBS: A "order" representa a horientação entre a Categória, Subcategoria e Subcategoria2 // 1 = Categória, 2 = Subcategoria, 3 = Subcategoria2. List <FiltroOrder> itemOrder = new List <FiltroOrder>(); switch (pesq.or) { //E a todo categória. case 0: //Lista de produtos. IlistaProdutos = listaProdutosCheckList(lista, IDesc, IPreco); //Filtro de desconto. IfiltroDesconto = filtroDescReturno(lista); //Filtro preço produto. IfiltroPrecoProduto = FiltroPrProdutoRetorno(lista, IDesc); //Filtro categória. var cat = (from gd in filtroOrder.Where(p => p.categorias.id_categoria != 1) group gd by new { gd.categorias.id_categoria, gd.categorias.nm_categoria } into grd where (grd.Key.nm_categoria != null) select new { grd.Key.id_categoria, grd.Key.nm_categoria, total = grd.Count() }); foreach (var i in cat) { FiltroOrder ab = new FiltroOrder(); Categoria cat1 = new Categoria() { id_categoria = i.id_categoria, nm_categoria = i.nm_categoria }; ab.categorias = cat1; ab.total = i.total; //Número da próxima order para ser inserido no botão. ab.or = 1; itemOrder.Add(ab); } IfiltroOrder = itemOrder; break; //E a SubCategória. case 1: //Lista de produtos. IlistaProdutos = listaProdutosCheckList(lista.Where(list => list.id_categoria == pesq.id).ToList(), IDesc, IPreco); //Filtro de desconto. IfiltroDesconto = filtroDescReturno(lista.Where(list => list.id_categoria == pesq.id).ToList()); //Filtro preço produto. IfiltroPrecoProduto = FiltroPrProdutoRetorno(lista.Where(list => list.id_categoria == pesq.id).ToList(), IDesc); //Filtro categória. //IfiltroOrder = filtroOrder.Where(list => list.categorias.id_categoria == pesq.id).ToList(); var subCat = (from gd in filtroOrder.Where(p => p.Subcategorias.id_subcategoria != 1) group gd by new { gd.categorias.id_categoria, gd.Subcategorias.id_subcategoria, gd.Subcategorias.nm_subcategoria, } into grd where (grd.Key.nm_subcategoria != null && grd.Key.id_categoria == pesq.id) select new { grd.Key.id_subcategoria, grd.Key.nm_subcategoria, total = grd.Count() }); foreach (var i in subCat) { FiltroOrder ab = new FiltroOrder(); Subcategoria subCat1 = new Subcategoria() { id_subcategoria = i.id_subcategoria, nm_subcategoria = i.nm_subcategoria }; ab.Subcategorias = subCat1; ab.total = i.total; //Número da próxima order para ser inserido no botão. ab.or = pesq.or + 1; itemOrder.Add(ab); } IfiltroOrder = itemOrder; break; //E a Subcategoria2. case 2: //Lista de produtos. IlistaProdutos = listaProdutosCheckList(lista.Where(list => list.id_subcategoria == pesq.id).ToList(), IDesc, IPreco); //Filtro de desconto IfiltroDesconto = filtroDescReturno(lista.Where(list => list.id_subcategoria == pesq.id).ToList());; //Filtro preço produto. IfiltroPrecoProduto = FiltroPrProdutoRetorno(lista.Where(list => list.id_subcategoria == pesq.id).ToList(), IDesc); //Filtro categória. //IfiltroOrder = filtroOrder; var subCat2 = (from gd in filtroOrder.Where(p => p.Subcategorias.id_subcategoria != 1 && p.Subcategorias2.id_subcategoria2 != 1) group gd by new { gd.Subcategorias.id_subcategoria, gd.Subcategorias2.id_subcategoria2, gd.Subcategorias2.nm_subcategoria2 } into grd where (grd.Key.nm_subcategoria2 != null && grd.Key.id_subcategoria == pesq.id) select new { grd.Key.id_subcategoria2, grd.Key.nm_subcategoria2, total = grd.Count() }); foreach (var i in subCat2) { FiltroOrder ab = new FiltroOrder(); Subcategoria2 subCat2a = new Subcategoria2() { id_subcategoria2 = i.id_subcategoria2, nm_subcategoria2 = i.nm_subcategoria2 }; ab.Subcategorias2 = subCat2a; ab.total = i.total; //Número da próxima order para ser inserido no botão. ab.or = pesq.or + 1; itemOrder.Add(ab); } IfiltroOrder = itemOrder; break; default: //Lista de produtos. IlistaProdutos = null; //Filtro de desconto. IfiltroDesconto = null; //Filtro preço produto. IfiltroPrecoProduto = null; //Filtro Order. IfiltroOrder = null; break; } #endregion } }