public IActionResult Get(int id) { try { Cliente cli = new Cliente(); using (var db = new ZupContext()) { cli = db.Cliente.Include(i => i.Telefones).Where(w => w.Id.Equals(id)).FirstOrDefault(); } if (cli != null) { return(Ok(cli)); } else { ErroModel erro = new ErroModel() { Mensagem = $"Não foi possível encontrar o cliente com o ID {id}" }; return(NotFound(erro)); } } catch (Exception er) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ErroModel() { Mensagem = er.Message, StackTrace = er.StackTrace })); } }
private void ServiceTimer_Tick(object sender, ElapsedEventArgs e) { ErroModel registroErro = new ErroModel(); var itens = DataSharepoint.obtemLista(contextoSharepoint, out registroErro, "Teste"); string retornoLista = "<h1>Itens Recuperados</h1>"; foreach (var item in itens) { retornoLista += $"<p>Item : {item.Title} - ID da pessoa cadastrada: {item.ID_Pessoa} - Nome Da pessoa: {item.Nome_Pessoa}</p>"; } retornoLista += registroErro.Mensagem; string exeption = ""; bool retornoEnvioEmail = Email.EnviaEmail("*****@*****.**", "Teste de envio de e-mail", $"<h1>E-mail diário automatico.</h1><p>E-mail disparado por serviço windows services.</p><p>Este e-mail foi disparado a partir da dll de serviço de disparo de e-mail (deu certo)</p><br/><br/>{retornoLista}", exeption); if (!retornoEnvioEmail) { retornoEnvioEmail = ServicoEmail.EnviaEmail("*****@*****.**", "Email diário", $"<h1>E-mail diário automatico.</h1><p>E-mail disparado por serviço windows services.</p><p>Este e-mail foi disparado a partir do método de disparo de e-mail implementado dentro do serviço, a dll não funcionou.</p><p>{exeption}</p><br/><br/>{retornoLista}", out exeption); } if (getCallType == 1) { timer1.Stop(); System.Threading.Thread.Sleep(1000000); SetTimer(); } }
public IActionResult Delete(int id) { try { Telefone telefone = new Telefone(); using (var db = new ZupContext()) { telefone = db.Telefone.Where(w => w.Id.Equals(id)).FirstOrDefault(); if (telefone != null) { db.Attach(telefone); db.Remove(telefone); db.SaveChanges(); } else { ErroModel erro = new ErroModel() { Mensagem = $"Não foi possível encontrar o telefone com o ID {id}" }; return(NotFound(erro)); } } return(Ok()); } catch (Exception er) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ErroModel() { Mensagem = er.Message, StackTrace = er.StackTrace })); } }
public WindowServiceEnviaEmail() { InitializeComponent(); ErroModel registroErro = new ErroModel(); string site = "https://classsolutions.sharepoint.com/sites/leandro.silva"; string usuario = "*****@*****.**"; string senha = "Class685947"; contextoSharepoint = DataSharepoint.AutenticaAcessoSPOnline(site, usuario, senha, out registroErro); parametro = DataSharepoint.obtemLista(contextoSharepoint, out registroErro, "Parametro"); int strTime = Convert.ToInt32(ConfigurationManager.AppSettings["callDuration"]); getCallType = Convert.ToInt32(ConfigurationManager.AppSettings["CallType"]); if (getCallType == 1) { double inter = (double)GetNextInterval(parametro); timer1.Interval = inter; timer1.Elapsed += new ElapsedEventHandler(ServiceTimer_Tick); } else { timer1 = new Timer(); timer1.Interval = strTime * 1000; timer1.Elapsed += new ElapsedEventHandler(ServiceTimer_Tick); } }
public IActionResult Post([FromRoute] int idCliente, Telefone telefone) { try { using (var db = new ZupContext()) { Cliente cliente = db.Cliente.Include(i => i.Telefones).Where(w => w.Id.Equals(idCliente)).FirstOrDefault(); if (cliente != null) { cliente.Telefones.Add(telefone); db.SaveChanges(); } else { ErroModel erro = new ErroModel() { Mensagem = $"Não foi possível encontrar o cliente com o ID {idCliente}" }; return(NotFound(erro)); } } return(Ok()); } catch (Exception er) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ErroModel() { Mensagem = er.Message, StackTrace = er.StackTrace })); } }
public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true) || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true)) { return; } Usuario u = filterContext.HttpContext.Session["usuario"] as Usuario; if (filterContext.HttpContext.Session != null && u == null) { filterContext.HttpContext.Session["controller"] = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; filterContext.HttpContext.Session["action"] = filterContext.ActionDescriptor.ActionName; filterContext.HttpContext.Session["param"] = filterContext.RouteData; filterContext.Result = new RedirectToRouteResult(acaoLogin); return; } ErroModel acessoNegado = new ErroModel { Titulo = "ACESSO NEGADO", Mensagem = "Você não possui permissão para executar esta ação." }; String controlador = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; String acao = filterContext.ActionDescriptor.ActionName; Object o = 0; bool inclusao = !filterContext.RouteData.Values.ContainsKey("id") || filterContext.RouteData.Values["id"] == o; bool semPermissao = u.Permissoes.Any(a => a.Controller == controlador && !a.Inclusao); if (acao == "Manutencao" && inclusao && semPermissao) { filterContext.Controller.TempData[ErroModel.ErroTag] = acessoNegado; filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { Controller = controlador, Action = "Index" })); return; } semPermissao = u.Permissoes.Any(a => a.Controller == controlador && !a.Alteracao); if (acao == "Manutencao" && !inclusao && semPermissao) { filterContext.Controller.TempData[ErroModel.ErroTag] = acessoNegado; filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { Controller = controlador, Action = "Index" })); return; } semPermissao = u.Permissoes.Any(a => a.Controller == controlador && !a.Exclusao); if (acao == "Excluir" && semPermissao) { ContentResult r = new ContentResult { Content = acessoNegado.Mensagem }; filterContext.Result = r; } }
public IActionResult RequestToken([FromBody] AutenticacaoModel autenticacao) { try { Cliente cli = null; ErroModel erro = null; using (var db = new ZupContext()) { string senha = UtilsHelper.CriptografaSenha(autenticacao.Senha); cli = db.Cliente.Where(w => w.Email.Equals(autenticacao.Email) && w.Senha.Equals(senha)).FirstOrDefault(); } if (cli != null) { var claims = new[] { new Claim(ClaimTypes.Email, autenticacao.Email), new Claim(ClaimTypes.Role, "Admin"), }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["SecurityKey"])); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: "teste", audience: "teste", claims: claims, expires: DateTime.Now.AddMinutes(30), signingCredentials: creds); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) })); } erro = new ErroModel() { Mensagem = "Usuário ou senha inválidos." }; return(NotFound(erro)); } catch (Exception er) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ErroModel() { Mensagem = er.Message, StackTrace = er.StackTrace })); } }
public static List <ItensListaModel> obtemLista(ClientContext context, out ErroModel registroErro, string lista) { List <ItensListaModel> itens = new List <ItensListaModel>(); registroErro = null; try { List spList = context.Web.Lists.GetByTitle(lista); CamlQuery camlQuery = new CamlQuery(); //camlQuery.ViewXml = query; var listItemcollection = spList.GetItems(camlQuery); if (lista == "Teste") { context.Load( listItemcollection, items => items.Include( item => item["Title"], item => item["Pessoa"] )); context.ExecuteQuery(); if (registroErro == null) { itens = TratamentoRetornoItens(listItemcollection, out registroErro); } } else { context.Load( listItemcollection, items => items.Include( item => item["Title"] )); context.ExecuteQuery(); if (registroErro == null) { itens = TratamentoRetornoItens(listItemcollection, out registroErro); } } } catch (Exception ex) { registroErro.Mensagem = $"Ocorreu um erro durante a consulta da lista {lista}. Mensagem: {ex.Message}"; registroErro.Detalhes = ex.StackTrace; registroErro.AppOrObjeto = ex.Source; } return(itens); }
public IActionResult Put([FromRoute] int idCliente, [FromRoute] int idTelefone, Telefone telefone) { try { bool valido = ModelState.IsValid; Cliente cli = new Cliente(); ErroModel erro = null; using (var db = new ZupContext()) { if (!db.Cliente.Where(w => w.Id.Equals(idCliente)).Any()) { erro = new ErroModel() { Mensagem = $"Não foi possível encontrar o cliente com o ID {idCliente}" }; return(NotFound(erro)); } if (!db.Telefone.Where(w => w.Id.Equals(idTelefone)).Any()) { erro = new ErroModel() { Mensagem = $"Não foi possível encontrar o telefone com o ID {idCliente}" }; return(NotFound(erro)); } telefone.Id = idTelefone; telefone.ClienteId = idCliente; db.Entry(telefone).State = EntityState.Modified; db.SaveChanges(); } return(Ok()); } catch (Exception er) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ErroModel() { Mensagem = er.Message, StackTrace = er.StackTrace })); } }
public IActionResult Put([FromRoute] int id, Cliente cliente) { try { Cliente cli = null; using (var db = new ZupContext()) { cli = db.Cliente.Include(i => i.Telefones).Where(w => w.Id.Equals(id)).AsNoTracking().FirstOrDefault(); if (cli != null) { cliente.Id = id; cliente.Senha = cli.Senha; db.Entry(cliente).State = EntityState.Modified; db.SaveChanges(); } else { ErroModel erro = new ErroModel() { Mensagem = $"Não foi possível encontrar o cliente com o ID {id}" }; return(NotFound(erro)); } } return(Ok()); } catch (Exception er) { return(StatusCode((int)HttpStatusCode.InternalServerError, new ErroModel() { Mensagem = er.Message, StackTrace = er.StackTrace })); } }
private static List <ItensListaModel> TratamentoRetornoItens(ListItemCollection listItemcollection, out ErroModel registroErro) { List <ItensListaModel> itens = new List <ItensListaModel>(); registroErro = null; try { foreach (var item in listItemcollection) { // Obtem o ID do documento e verifica se o mesmo é um documento válido ItensListaModel process = new ItensListaModel(); //verifica o tipo do campo obtido em cada item, verifica a propriedade e adiciona o valor correto. foreach (var field in item.FieldValues) { if (field.Value is ClientValueObject) { try { string lookupValue = ""; int lookupId = 0; FieldLookupValue lookupField = field.Value as FieldLookupValue; if (lookupField != null) { lookupValue = lookupField.LookupValue; lookupId = lookupField.LookupId; } else { FieldUserValue lookupUser = field.Value as FieldUserValue; lookupValue = lookupUser.LookupValue; lookupId = lookupUser.LookupId; } PropertyInfo propId = process.GetType().GetProperty("ID_" + field.Key); if (propId != null && propId.CanWrite) { propId.SetValue(process, lookupId, null); } PropertyInfo propDesc = process.GetType().GetProperty("Nome_" + field.Key); if (propDesc != null && propDesc.CanWrite) { propDesc.SetValue(process, lookupValue, null); } } catch (Exception ex) { registroErro.Mensagem = $"Ocorreu um erro durante o tratamento das propriedades para campos do tipo ClientValueObject. Mensagem: {ex.Message}"; registroErro.Detalhes = ex.StackTrace; registroErro.AppOrObjeto = ex.Source; continue; } } else { try { PropertyInfo prop = process.GetType().GetProperty(field.Key); if (prop != null && prop.CanWrite) { var val = field.Value; if (prop.PropertyType.Name == "Boolean" || prop.PropertyType.Name == "Int32" || prop.PropertyType.Name == "Single") { val = Convert.ToInt32(val); } if (prop.PropertyType.Name == "DateTime") { val = Convert.ToDateTime(val); } if (prop.PropertyType.Name == "String" && val != null) { val = val.ToString(); } prop.SetValue(process, val, null); } } catch (Exception ex) { registroErro.Mensagem = $"Ocorreu um erro durante o tratamento dos campos genéricos. Mensagem: {ex.Message}"; registroErro.Detalhes = ex.StackTrace; registroErro.AppOrObjeto = ex.Source; continue; } } } itens.Add(process); } } catch (Exception ex) { registroErro.Mensagem = $"Ocorreu um erro durante o o tratamento de retorno dos itens. Mensagem: {ex.Message}"; registroErro.Detalhes = ex.StackTrace; registroErro.AppOrObjeto = ex.Source; } return(itens); }
public static ClientContext AutenticaAcessoSPOnline(string url, string user, string password, out ErroModel registroErro) { ClientContext clientContex = new ClientContext(url); registroErro = null; try { var passWord = new SecureString(); foreach (char c in password.ToCharArray()) { passWord.AppendChar(c); } clientContex.Credentials = new SharePointOnlineCredentials(user, passWord); clientContex.ExecuteQuery(); return(clientContex); } catch (Exception ex) { registroErro.Mensagem = $"O correu um erro durante a autenticação no sharepoint online no site {url}. {ex.Message}"; registroErro.Detalhes = ex.StackTrace; registroErro.AppOrObjeto = ex.Source; return(clientContex); } }
public ErroModel TrataMensagemErro(string msg) { var erro = new ErroModel(); if (msg == "O servidor retornou uma Falha SOAP inválida. Consulte a InnerException para obter mais detalhes.") { erro.Msg = "Ops, isso não era para ter acontecido."; erro.Acao = "Por favor contate o desenvolvedor"; erro.CodErro = "1001"; } else if (msg == "Server returned an invalid SOAP Fault. Please see InnerException for more details.") { erro.Msg = "Ops, isso não era para ter acontecido."; erro.Acao = "Por favor contate o desenvolvedor"; erro.CodErro = "1001"; } else if (msg == "O servidor remoto retornou uma resposta inesperada: (502) Bad Gateway.") { erro.Msg = "Não foi possivel conectar com o servidor"; erro.Acao = "Tente novamente dentro de alguns minutos, caso persistir, contate o suporte."; erro.CodErro = "502"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial.vertech-it.com.br/vch-esocial/envialote capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor - envialote"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial2.vertech-it.com.br/vch-esocial/envialote capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor - envialote 2"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial.vertech-it.com.br/vch-esocial/consultalote capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial2.vertech-it.com.br/vch-esocial/consultalote capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor - consultalote 2"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial.vertech-it.com.br/vch-esocial/consultaintegra capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor - consultaintegra"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial2.vertech-it.com.br/vch-esocial/consultaintegra capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor - consultaintegra 2"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial.vertech-it.com.br/vch-esocial/enviaintegra capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor - enviaintegra"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Não havia um ponto de extremidade em escuta em https://apiesocial2.vertech-it.com.br/vch-esocial/enviaintegra capaz de aceitar a mensagem. Em geral, isso é causado por um endereço ou ação de SOAP incorreta. Consulte InnerException, se presente, para obter mais detalhes.") { erro.Msg = "Não foi possivel conectar com o servidor - enviaintegra 2"; erro.Acao = "Verifique sua conexão com a internet ou se há proxy"; erro.CodErro = "1000"; } else if (msg == "Erro de rede ou específico à instância ao estabelecer conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provider: TCP Provider, error: 0 - O computador remoto recusou a conexão de rede.)") { } else if (msg == "O formatador gerou uma exceção ao tentar desserializar a mensagem: Erro ao tentar desserializar o parâmetro http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/consulta/retornoProcessamento/v1_1_0:ConsultarLoteEventosResponse. A mensagem da InnerException foi 'Houve um erro ao desserializar o objeto do tipo IntegradorCore.apiConsultaXML.ConsultarLoteEventosResponseBody. O prefixo 'xsi' não está definido. Linha 1, posição 818.'. Consulte a InnerException para obter mais detalhes.") { } return(erro); }