public string PostarLocalizacao() { RespostaHttp resp = new RespostaHttp(); try { Guid VeiculoID = _requestBody.GetValueAs <Guid>("VeiculoId"); List <string> Tags = _requestBody.GetValueAs <List <string> >("Tags"); double lat = _requestBody.GetValueAs <double>("Latitude"); double lng = _requestBody.GetValueAs <double>("Longitude"); var veiculo = _veiculoService.ObterPorId(VeiculoID); Rota rota = _rotaService.ObterPorId(veiculo.RotaAtual); resp = LogicaPost(Tags, lat, lng, rota); if (resp == null) { throw new Exception(); } } catch (Exception) { resp = new RespostaHttp(); resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string PostarLocalizacao() { RespostaHttp resp = new RespostaHttp(); try { Guid VeiculoID = _requestBody.GetValueAs <Guid>("VeiculoId"); var veiculo = _veiculoService.ObterPorId(VeiculoID); Rota rota = _rotaService.ObterPorId(veiculo.RotaAtual); var localizacao = new Localizacao { HorarioAmostra = DateTime.UtcNow, Latitude = _requestBody.GetValueAs <double>("Latitude"), Longitude = _requestBody.GetValueAs <double>("Longitude"), Rota = rota }; _localizacaoService.SalvarLocalizacao(localizacao); resp.Ok = true; resp.Mensagem = "Localização salva com sucesso."; } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string ObterDetalhesPacote() { var resp = new RespostaHttp(); try { Guid pacoteId = _requestBody.GetValueAs <Guid>("PacoteId"); var pacote = _pacoteService.ObterPorDestinatario(_user.UsuarioId).Where(x => x.PacoteId == pacoteId).First(); var addr = _enderecoService.ObterPorId(pacote.Destino); var empresa = _empresaService.ObterPorId(pacote.Remetente); var respostaPacote = new RespostaPacote(pacote, empresa.NomeEmpresa, true, _estacaoService, _enderecoService); resp.Ok = true; resp.Mensagem = respostaPacote; } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string AlterarSenha() { var resp = new RespostaHttp(); try { string senhaAntiga = _requestBody.GetValueAs <string>("SenhaAntiga"); string senhaNova = _requestBody.GetValueAs <string>("SenhaNova"); if (_user.VerificarSenha(senhaAntiga)) { _user.CriarSenha(senhaNova); _usuarioService.SalvarUsuario(_user); resp.Ok = true; resp.Mensagem = "Senha alterada com sucesso."; } else { resp.Ok = false; resp.Mensagem = "A senha atual incorreta."; } } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string CadastrarUsuario() { var resp = new RespostaHttp(); try { string nome = _requestBody.GetValueAs <string>("NomeUsuario"); string senhaDec = _requestBody.GetValueAs <string>("SenhaUsuario"); string email = _requestBody.GetValueAs <string>("EmailUsuario"); var oldUser = _usuarioService.ObterPorEmail(email); if (oldUser == null) { var usuario = new Usuario { DataCadastro = DateTime.UtcNow, Email = email, Nome = nome, }; usuario.CriarSenha(senhaDec); var sucesso = _usuarioService.SalvarUsuario(usuario); if (sucesso) { resp.Ok = true; resp.Mensagem = usuario.UsuarioId; } else { resp.Ok = false; resp.Mensagem = "Não foi possível realizar o cadastro do usuário."; } } else { resp.Ok = false; resp.Mensagem = "Esse email já está vinculado a outra conta."; } } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string DadosDoUsuario() { var resp = new RespostaHttp(); try { resp.Ok = true; resp.Mensagem = _user; } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string PostarPorQuery() { RespostaHttp resp = new RespostaHttp(); try { var query = Request.QueryString; if (query.Count != 4) { resp.Ok = false; resp.Mensagem = "O formato da requisição está incorreto. (400)"; } else { Guid VeiculoId = new Guid(query.Get("V")); List <string> Tags = JsonConvert.DeserializeObject <List <string> >(query.Get("T")); double lat = Double.Parse(query.Get("lat"), CultureInfo.InvariantCulture); double lng = Double.Parse(query.Get("lng"), CultureInfo.InvariantCulture); var veiculo = _veiculoService.ObterPorId(VeiculoId); var rota = _rotaService.ObterPorId(veiculo.RotaAtual); resp = LogicaPost(Tags, lat, lng, rota); if (resp == null) { throw new Exception(); } } } catch (Exception) { resp = new RespostaHttp(); resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string RegistrarPacoteEmUsuario() { RespostaHttp resp = new RespostaHttp(); try { Guid pacoteId = _requestBody.GetValueAs <string>("CodigoPacote"); var pacote = _pacoteService.ObterPorId(pacoteId); if (pacote != null) { if (pacote.DestinatarioId == Guid.Empty) { pacote.DestinatarioId = _user.UsuarioId; _pacoteService.SalvarPacote(pacote); resp.Ok = true; resp.Mensagem = "Pacote associado com sucesso. (200)"; } else { resp.Ok = false; resp.Mensagem = "O pacote especificado já está associado a um outro usuário."; } } else { resp.Ok = false; resp.Mensagem = "O pacote especificado não existe. (404)"; } } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string ObterPacotesHistorico() { var resp = new RespostaHttp(); try { var pacotes = _pacoteService.ObterPorDestinatario(_user.UsuarioId).Where(x => x.Entregue).ToList(); var lista = RespostaPacote.ConverterLista(pacotes, _enderecoService, _empresaService, _estacaoService, false); resp.Ok = true; resp.Mensagem = lista; } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
public string Login() { var resp = new RespostaHttp(); try { string email = _requestBody.GetValueAs <string>("EmailUsuario"); string senha = _requestBody.GetValueAs <string>("SenhaUsuario"); var user = _usuarioService.ObterPorEmail(email); if (user != null) { if (user.VerificarSenha(senha)) { resp.Ok = true; resp.Mensagem = user.UsuarioId; } else { resp.Ok = false; resp.Mensagem = "Senha incorreta."; } } else { resp.Ok = false; resp.Mensagem = "Esse email não está cadastrado."; } } catch (Exception) { resp.Ok = false; resp.Mensagem = "Ocorreu um erro ao processar a requisição. (500)"; } return(Serialize(resp)); }
private RespostaHttp LogicaPost(List <string> Tags, double latitude, double longitude, Rota rota) { var resp = new RespostaHttp(); if (rota.DataFim.CompareTo(rota.DataInicio) > 0) { resp.Ok = false; resp.Mensagem = "Essa rota já foi finalizada e não aceita novas amostras."; return(resp); } else { try { var leituraPacotes = new List <Pacote>(); foreach (var s in Tags) { Pacote p = _pacoteService.ObterPorTag(s); if (p != null) { leituraPacotes.Add(p); } } if (rota.AmostrasLocalizacao.Count == 0) { rota.Pacotes = leituraPacotes; _rotaService.SalvarRota(rota); } else { foreach (var item in rota.Pacotes) { if (!leituraPacotes.Exists(x => x.PacoteId == item.PacoteId)) { Ocorrencia o = new Ocorrencia { Data = DateTime.UtcNow, Descricao = "Pacote não encontrado no veículo", Pacote = item.PacoteId, TipoOCorrencia = TipoOCorrencia.NaoEncontrado, Finalizado = false, Resolvido = false }; _ocorrenciaService.SalvarOcorrencia(o); } } } var localizacao = new Localizacao { HorarioAmostra = DateTime.UtcNow, Latitude = latitude, Longitude = longitude, Rota = rota }; _localizacaoService.SalvarLocalizacao(localizacao); var estacaoDestino = _estacaoService.ObterPorId(rota.Destino); var addr = estacaoDestino.Endereco; double distancia = GeocodingService.Haversine(latitude, longitude, addr.Latitude, addr.Longitude); if (distancia <= 20) { rota.DataFim = DateTime.UtcNow; _rotaService.SalvarRota(rota); resp.Ok = true; resp.Mensagem = "Localização salva com sucesso, rota finalizada."; return(resp); } else { resp.Ok = true; resp.Mensagem = "Localização salva com sucesso."; return(resp); } } catch (Exception) { return(null); } } }