public IActionResult Create([FromBody] Taxista item) { _context.Taxistas.Add(item); _context.SaveChanges(); return(CreatedAtRoute("GetTaxistaById", new { id = item.Id }, item)); }
public void MovimentarTaxistasAleatorio() { const double CONSTANTE_DESLOCAMENTO_TAXISTA = 0.0001; const double PROBABILIDADE_MOVIMENTACAO_DIRECAO_NORTE_LATITUDE = 0.5; const double PROBABILIDADE_MOVIMENTACAO_DIRECAO_LESTE_LONGITUDE = 0.5; const double PROBAILIDADE_TAXISTA_MOVIMENTAR = 0.9; Random rand_pos = new Random(); lock (_taxistas) { for (int i = 0; i < _taxistas.Count; i++) { Taxista taxi = _taxistas.ElementAt(i); ////reposiciona o taxista pela cidade //int direcao_latitude = (rand.NextDouble() > PROBABILIDADE_MOVIMENTACAO_DIRECAO_NORTE_LATITUDE) ? 1 : -1; //int direcao_longitude = (rand.NextDouble() > PROBABILIDADE_MOVIMENTACAO_DIRECAO_LESTE_LONGITUDE) ? 1 : -1; //taxi.PosicaoAtual.Latitude += (rand.NextDouble() * CONSTANTE_DESLOCAMENTO_TAXISTA) * direcao_latitude; //taxi.PosicaoAtual.Longitude += (rand.NextDouble() * CONSTANTE_DESLOCAMENTO_TAXISTA) * direcao_longitude; if (rand_pos.NextDouble() < PROBAILIDADE_TAXISTA_MOVIMENTAR) { double direcao_latitude = (rand_pos.NextDouble() > PROBABILIDADE_MOVIMENTACAO_DIRECAO_NORTE_LATITUDE) ? rand_pos.NextDouble() : -rand_pos.NextDouble(); double direcao_longitude = (rand_pos.NextDouble() > PROBABILIDADE_MOVIMENTACAO_DIRECAO_LESTE_LONGITUDE) ? rand_pos.NextDouble() : -rand_pos.NextDouble(); taxi.PosicaoAtual.Latitude += rand_pos.NextDouble() * direcao_latitude * CONSTANTE_DESLOCAMENTO_TAXISTA; taxi.PosicaoAtual.Longitude += rand_pos.NextDouble() * direcao_longitude * CONSTANTE_DESLOCAMENTO_TAXISTA; } } } }
private void CarregarInformacoesUsuario() { Taxista taxista = (Taxista)Base.SessaoUsuario; if (taxista.Status != StatusTaxista.Pendente) { if (taxista.Veiculo != null) { int montadora = taxista.Veiculo.Modelo.Montadora.ID; int modelo = taxista.Veiculo.Modelo.ID; this.CarregarCaixaModelo(montadora); ddlMarca.SelectedValue = montadora.ToString(); ddlModelo.SelectedValue = modelo.ToString(); txtAnoFabMod.Text = string.Format("{0}/{1}", taxista.Veiculo.AnoFabricacao, taxista.Veiculo.AnoModelo); txtCor.Text = taxista.Veiculo.CorPredominante; txtPlaca.Text = taxista.Veiculo.Placa.ToUpper(); txtRenavam.Text = taxista.Veiculo.Renavam; txtAutorizacaoTrafego.Text = taxista.Veiculo.AutorizacaoTrafego; if (taxista.Veiculo.Rastreador != null) { txtNumeroSerie.Text = taxista.Veiculo.Rastreador.ID.ToString().ToUpper(); txtCodigoSeguranca.Text = taxista.Veiculo.Rastreador.CodigoSeguranca.ToString().ToUpper(); } } txtCNH.Text = taxista.CNH; txtNumeroLicenca.Text = taxista.NumeroLicenca; tableContrato.Visible = false; } }
public Taxista ObterTaxiLivreMaisProximo(Localizacao localCliente) { IList <Taxista> taxis = this.FiltrarTaxistasLivresPorCirculos(localCliente); if (taxis != null && taxis.Count > 0) { //limita o número de entradas a serem processadas if (taxis.Count() > TOP_ROWS) { taxis = taxis.OrderBy(tx => this.ObterDistanciaEuclidiana(tx.PosicaoAtual.Latitude, tx.PosicaoAtual.Longitude, localCliente.Latitude, localCliente.Longitude)).Take(TOP_ROWS).ToList(); } TimeSpan minDuration = TimeSpan.MaxValue; Taxista taxistaMaisProximo = null; //busca o taxista mais próximo de acordo com as estimativas do Google API foreach (Taxista taxi in taxis) { Leg response = Geolocation.ObterDirecao(taxi.PosicaoAtual.Endereco, localCliente.Endereco); if (response != null) { if (response.Duration.Value < minDuration) { taxistaMaisProximo = taxi; minDuration = response.Duration.Value; } } } return(taxistaMaisProximo); } return(null); }
public static XmlDocument TransformTaxistaIntoXML(XmlDocument xmldoc, Taxista taxista, int index) { //let's add another element (child of the root) XmlElement xml_taxista = xmldoc.CreateElement("taxista"); xmldoc.ChildNodes.Item(1).AppendChild(xml_taxista); XmlElement xml_id = xmldoc.CreateElement("id"); xml_id.AppendChild(xmldoc.CreateTextNode(taxista.ID.ToString())); xmldoc.ChildNodes.Item(1).ChildNodes.Item(index).AppendChild(xml_id); XmlElement xml_latitude = xmldoc.CreateElement("latitude"); xml_latitude.AppendChild(xmldoc.CreateTextNode(taxista.PosicaoAtual.Latitude.ToString())); xmldoc.ChildNodes.Item(1).ChildNodes.Item(index).AppendChild(xml_latitude); XmlElement xml_longitude = xmldoc.CreateElement("longitude"); xml_longitude.AppendChild(xmldoc.CreateTextNode(taxista.PosicaoAtual.Longitude.ToString())); xmldoc.ChildNodes.Item(1).ChildNodes.Item(index).AppendChild(xml_longitude); XmlElement xml_endereco = xmldoc.CreateElement("endereco"); xml_endereco.AppendChild(xmldoc.CreateTextNode(taxista.PosicaoAtual.Endereco.ToString())); xmldoc.ChildNodes.Item(1).ChildNodes.Item(index).AppendChild(xml_endereco); XmlElement xml_status = xmldoc.CreateElement("status"); xml_status.AppendChild(xmldoc.CreateTextNode(taxista.Status.ToString())); xmldoc.ChildNodes.Item(1).ChildNodes.Item(index).AppendChild(xml_status); return(xmldoc); }
public async Task <Taxista> GetTaxistaByEmailAsync(string email) { var response = await client.GetAsync($"/api/taxistas/email/{email}"); Taxista taxista = await response.Content.ReadAsAsync <Taxista>(); return(taxista); }
public async Task <Taxista> GetTaxistaByIdAsync(Guid id) { var response = await client.GetAsync($"/api/taxistas/{id}"); Taxista taxista = await response.Content.ReadAsAsync <Taxista>(); return(taxista); }
private Taxista ObterDadosFormularioTaxista() { Taxista taxista = (Taxista)Base.SessaoUsuario; taxista.CNH = txtCNH.Text; taxista.NumeroLicenca = txtNumeroLicenca.Text; taxista.Status = StatusTaxista.SemStatus; return(taxista); }
private Taxista ObterDadosFormularioTaxista() { Taxista taxista = new Taxista(); taxista.Email = txtEmail.Text; taxista.Senha = txtSenha.Text; taxista.PermitirNotificacaoEmail = chkEnvioEmail.Checked; return(taxista); }
private void CarregarInformacoesDispositivos() { Taxista taxista = (Taxista)Base.SessaoUsuario; if (taxista != null && taxista.Veiculo != null && taxista.Veiculo.Rastreador != null) { lblNumeroSerie.Text = taxista.Veiculo.Rastreador.ID.ToString().ToUpper(); lblCodigoSeguranca.Text = taxista.Veiculo.Rastreador.CodigoSeguranca.ToString().ToUpper(); } }
public async Task <IActionResult> CreateTaxistaAsync(Taxista taxista) { taxista.Id = Guid.NewGuid(); taxista.Estatus = "Activo"; taxista.Puntuacion = 5.0M; taxista.AdministradorId = new Guid(HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value); var createdAt = await service.CreateTaxistaAsync(taxista); return(RedirectToAction("GetById", new { id = taxista.Id })); }
public async Task <Uri> CreateTaxistaAsync(Taxista taxista) { var response = await client.PostAsJsonAsync("api/taxistas", taxista); response.EnsureSuccessStatusCode(); // URI of the created resource. var createdAt = response.Headers.Location; return(createdAt); }
public async Task <Taxista> UpdateTaxistaAsync(Taxista taxista) { HttpResponseMessage response = await client.PutAsJsonAsync($"api/taxistas/{taxista.Id}", taxista); response.EnsureSuccessStatusCode(); // Deserialize the updated product from the response body. taxista = await response.Content.ReadAsAsync <Taxista>(); return(taxista); }
private static void CarregarTaxistas() { taxistas = Taxista.ListarTodos().OrderBy(tx => tx.Pessoa.NomeOuRazaoSocial).Take(NUMERO_TAXISTAS).ToList(); for (int i = 0; i < taxistas.Count; i++) { taxistas[i].PosicaoAtual = DefinirPosicao(); TaxistaLocationClient taxista_location = new TaxistaLocationClient(); taxista_location.IniciarPosicaoComStatusAleatorio(taxistas[i].ID, taxistas[i].PosicaoAtual.Latitude, taxistas[i].PosicaoAtual.Longitude); } }
public static string GetLocation(Guid taxistaID) { OFMS ofms = OFMS.GetInstance(); Taxista taxista = ofms.Taxistas.FirstOrDefault(taxi => taxi.ID == taxistaID); if (taxista != null && taxista.PosicaoAtual != null) { return(string.Format("{0}|{1}", taxista.PosicaoAtual.Latitude.ToString().Replace(",", "."), taxista.PosicaoAtual.Longitude.ToString().Replace(",", "."))); } return(String.Empty); }
public static void AtualizaPosicaoTaxista(Guid ID, double latitude, double longitude) { Taxista taxista = _taxistas.FirstOrDefault(taxi => taxi.ID == ID); if (taxista != null) { AtualizaPosicaoTaxista(ID, latitude, longitude, taxista.Status); } else { AtualizaPosicaoTaxista(ID, latitude, longitude, StatusTaxista.TaxiLivre); } }
protected void btnConfirmar_Click(Object sender, EventArgs e) { if (Page.IsValid) { Veiculo veiculo = this.ObterDadosFormularioVeiculo(); veiculo.Rastreador = this.ObterDadosFormularioRastreador(); veiculo.Proprietario = Base.SessaoUsuario.Pessoa; Taxista taxista = this.ObterDadosFormularioTaxista(); taxista.Veiculo = veiculo; veiculo.Taxistas.Add(taxista); veiculo.Salvar(); PageBase.CaixaMensagens.Exibir(App_LocalResources.LabelsResource.VEICULO, App_LocalResources.MensagensResource.VEICULO_SUCESSO); } }
protected void gvTaxistas_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Taxista taxista = (Taxista)e.Row.DataItem; Label lblLatitude = (Label)e.Row.FindControl("lblLatitude"); Label lblLongitude = (Label)e.Row.FindControl("lblLongitude"); Label lblNome = (Label)e.Row.FindControl("lblNome"); Label lblDataHora = (Label)e.Row.FindControl("lblDataHora"); lblLatitude.Text = taxista.PosicaoAtual.Latitude.ToString(); lblLongitude.Text = taxista.PosicaoAtual.Longitude.ToString(); lblNome.Text = (taxista.Pessoa.TipoPessoa == TipoPessoa.PessoaFisica) ? ((PessoaFisica)taxista.Pessoa).Nome : ((PessoaJuridica)taxista.Pessoa).RazaoSocial; lblDataHora.Text = taxista.PosicaoAtual.Data.ToString("G"); } }
public void AlterarStatusTaxistaAleatorio() { const double PROBABILIDADE_MODIFICACAO_STATUS_TAXISTAS = 0.1; //número máximo de modificações = 10% lock (_taxistas) { Random rand = new Random(); int number_changes = rand.Next((int)(_taxistas.Count * PROBABILIDADE_MODIFICACAO_STATUS_TAXISTAS)); for (int i = 0; i < number_changes; i++) { Taxista taxi = _taxistas.ElementAt(rand.Next(_taxistas.Count())); taxi.Status = (taxi.Status == StatusTaxista.TaxiLivre) ? StatusTaxista.EmAtendimento : StatusTaxista.TaxiLivre; } } }
public static void Main(string[] args) { random = new Random(DateTime.Now.Millisecond); rand_pos = new Random(DateTime.Now.Millisecond + DateTime.Now.Minute); //Obtem a lista de todos os taxistas taxistas = Taxista.ListarTodos(); //taxistas = new List<Taxista>(); //taxistas.Add(Taxista.Obter(Guid.Parse("9eb7a533-6c2c-43a4-b6b1-e9e085b0c3e0"))); Console.WriteLine("\n\n\n\n\n\n\n"); //Realiza a inserção de informações no mapa a cada 10 segundos Timer t = new Timer(TimerCallback, null, 0, 100); //aguarda uma tecla para finalizar Console.ReadLine(); }
public IActionResult Update(Guid id, Taxista item) { var taxista = _context.Taxistas.Find(id); if (taxista == null) { return(NotFound()); } taxista.Correo = item.Correo; taxista.Contraseña = item.Contraseña; taxista.PrimerNombre = item.PrimerNombre; taxista.Apellidos = item.Apellidos; taxista.Telefono = item.Telefono; taxista.Direccion = item.Direccion; taxista.FechaModificado = DateTime.Now; taxista.Estatus = item.Estatus; _context.Taxistas.Update(taxista); _context.SaveChanges(); return(NoContent()); }
protected void btnEntrar_Click(object sender, EventArgs e) { if (Page.IsValid) { Usuario usuario = null; if (this.TipoUsuarioLogin.HasValue) { string pagina_home = "~/"; if (this.TipoUsuarioLogin.Value == TipoUsuario.Taxista) { usuario = Taxista.LogarTaxista(txtEmail.Text, txtSenha.Text); pagina_home = Constantes.CONSTANTE_PAGINA_HOME_TAXISTA; } else if (this.TipoUsuarioLogin.Value == TipoUsuario.Cliente) { usuario = Cliente.LogarCliente(txtEmail.Text, txtSenha.Text); pagina_home = Constantes.CONSTANTE_PAGINA_HOME_CLIENTE; } //loga usuário de acordo com o perfil e redireciona para a página inicial if (usuario != null) { Session.Clear(); Session.Add(Constantes.CONSTANTE_SESSAO_USUARIO, usuario); Response.Redirect(pagina_home); } else { PageBase.CaixaMensagens.Exibir(App_LocalResources.LabelsResource.AUTENTICACAO, App_LocalResources.MensagensResource.LOGIN_NAO_REALIZADO); } } else { Response.Redirect("~/"); } } }
public static void AtualizaPosicaoTaxista(Guid ID, double latitude, double longitude, StatusTaxista status) { if (_taxistas == null) { OFMS.GetInstance(); } lock (_taxistas) { Taxista taxista = _taxistas.FirstOrDefault(taxi => taxi.ID == ID); if (taxista == null) { taxista = Taxista.Obter(ID); taxista.Status = status; if (taxista != null) { taxista.PosicaoAtual = new Localizacao(); } else { throw new TaxistaNaoEncontradoException(); } taxista.PosicaoAtual.Latitude = latitude; taxista.PosicaoAtual.Longitude = longitude; taxista.PosicaoAtual.Data = DateTime.Now; _taxistas.Add(taxista); } else { taxista.PosicaoAtual.Latitude = latitude; taxista.PosicaoAtual.Longitude = longitude; taxista.PosicaoAtual.Data = DateTime.Now; } } }
private Guid DefinirAtendimento(Requisicao atendimento, MetodoBuscaTaxi metodo, out TimeSpan processTime) { processTime = new TimeSpan(); DateTime beginTime; Taxista taxista = null; switch (metodo) { case MetodoBuscaTaxi.GPS: beginTime = DateTime.Now; taxista = this.ObterTaxiLivreMaisProximo(atendimento.Cliente.PosicaoAtual); processTime = DateTime.Now.Subtract(beginTime); break; case MetodoBuscaTaxi.BROADCASTING: beginTime = DateTime.Now; taxista = this.ObterTaxiLivrePeloMetodoBroadcasting(atendimento.Cliente.PosicaoAtual); processTime = DateTime.Now.Subtract(beginTime); break; case MetodoBuscaTaxi.DISTANCIA_EUCLIDIANA: beginTime = DateTime.Now; taxista = this.ObterTaxiLivrePorDistanciaEuclidiana(atendimento.Cliente.PosicaoAtual); processTime = DateTime.Now.Subtract(beginTime); break; case MetodoBuscaTaxi.OTIMIZACAO: break; default: taxista = this.ObterTaxiLivreMaisProximo(atendimento.Cliente.PosicaoAtual); break; } if (taxista != null && _filaEspera.Count <= 0) { taxista.Status = StatusTaxista.EmAtendimento; atendimento.Status = StatusRequisicao.RequisicaoRealizada; //libera o taxista anterior (caso onde o taxista escolhido anteriormente recusou) if (atendimento.Taxista != null) { atendimento.Taxista.Status = StatusTaxista.TaxiLivre; } atendimento.Taxista = taxista; //adiciona a lista de atendimentos _requisicoes.Add(atendimento); } else { //se não houver taxistas, a requisição aguarda na fila atendimento.Status = StatusRequisicao.EmProcessamento; //libera o taxista anterior e define remove taxista da responsabilidade if (atendimento.Taxista != null) { atendimento.Taxista.Status = StatusTaxista.TaxiLivre; atendimento.Taxista = null; } _filaEspera.Add(atendimento); //adiciona a fila de espera throw new NenhumTaxiParaAtenderRequisicaoException(); } return(atendimento.ID); }
public IActionResult Index() { Taxista taxista = new Taxista(); return(View(taxista)); }
protected void btnConfirmar_Click(Object sender, EventArgs e) { if (Page.IsValid) { if (this.TipoUsuarioLogin.HasValue) { if (this.TipoUsuarioLogin.Value == TipoUsuario.Taxista) { Taxista taxista = ObterDadosFormularioTaxista(); Pessoa pessoa = null; if (Convert.ToInt32(rbtTipoPessoa.SelectedValue) == (int)TipoPessoa.PessoaFisica) { pessoa = ObterDadosFormularioPessoaFisica(); } else { pessoa = ObterDadosFormularioPessoaJuridica(); } taxista.Pessoa = pessoa; taxista.Salvar(); //realiza login do usuario Session.Add(Constantes.CONSTANTE_SESSAO_USUARIO, taxista); //exibe mensagem de confirmação do cadastro PageBase.CaixaMensagens.ExibirRedirecionar(App_LocalResources.LabelsResource.CADASTRO, App_LocalResources.MensagensResource.CADASTRO_SUCESSO, Constantes.CONSTANTE_PAGINA_HOME_TAXISTA); } else if (this.TipoUsuarioLogin.Value == TipoUsuario.Cliente) { Cliente cliente = ObterDadosFormularioCliente(); Pessoa pessoa = null; if (Convert.ToInt32(rbtTipoPessoa.SelectedValue) == (int)TipoPessoa.PessoaFisica) { pessoa = ObterDadosFormularioPessoaFisica(); } else { pessoa = ObterDadosFormularioPessoaJuridica(); } cliente.Pessoa = pessoa; cliente.Salvar(); //realiza login do usuário Session.Add(Constantes.CONSTANTE_SESSAO_USUARIO, cliente); //exibe mensagem de confirmação do cadastro PageBase.CaixaMensagens.ExibirRedirecionar(App_LocalResources.LabelsResource.CADASTRO, App_LocalResources.MensagensResource.CADASTRO_SUCESSO, Constantes.CONSTANTE_PAGINA_HOME_CLIENTE); } else { PageBase.CaixaMensagens.ExibirRedirecionar(App_LocalResources.LabelsResource.CADASTRO, App_LocalResources.MensagensResource.TIPO_USUARIO_NAO_DEFINIDO, Constantes.CONSTANTE_PAGINA_LOGIN); } } else { PageBase.CaixaMensagens.ExibirRedirecionar(App_LocalResources.LabelsResource.CADASTRO, App_LocalResources.MensagensResource.TIPO_USUARIO_NAO_DEFINIDO, Constantes.CONSTANTE_PAGINA_LOGIN); } updMultiview.Update(); } }
public async Task <IActionResult> GetTaxistaByIdAsync(Taxista taxista) { var updated = await service.UpdateTaxistaAsync(taxista); return(View(updated)); }