public static async Task <int> CadastreCaronaBuscaAsync(CaronaBusca carona, Carona_ServiceContext contexto) { DefinePontos(carona.PontoPartida, carona.PontoChegada); var origem = string.Concat("geography::STPointFromText('POINT(", _pontoOrigem, ")', 4985), "); var destino = string.Concat("geography::STPointFromText('POINT(", _pontoDestino, ")', 4985), "); var trajeto = string.Concat("geography::STMPointFromText('MULTIPOINT(", _pontoOrigem, ", ", _pontoDestino, ")', 4985), "); var sql = new StringBuilder(); sql.Append("INSERT INTO CARONABUSCA (ID, IDUSUARIO, DESCRICAO, PONTOPARTIDA, PONTOCHEGADA, TRAJETO, HORARIOPARTIDA, HORARIOCHEGADA) "); sql.Append("VALUES (@id, @idUsuario, @descricao, "); sql.Append(origem); sql.Append(destino); sql.Append(trajeto); sql.Append(" cast(@horarioPartida as time), cast(@horarioChegada as time)) "); int resultado = -1; try { resultado = await contexto.Database.ExecuteSqlCommandAsync(new RawSqlString(sql.ToString()), new SqlParameter("@id", carona.Id.ToString()), new SqlParameter("@idUsuario", carona.IdUsuario.ToString()), new SqlParameter("@descricao", carona.Descricao), new SqlParameter("@horarioPartida", carona.HorarioPartida.ToString()), new SqlParameter("@horarioChegada", carona.HorarioChegada.ToString())); } catch (Exception e) { throw new Exception(e.Message, e.InnerException); } return(resultado); }
public CaronaOfertasController(Carona_ServiceContext context) { _context = context; }
public static async Task <List <CaronaOferta> > ConsulteCaronasOfertadasAsync(string id, Carona_ServiceContext contexto) { var consulta = new StringBuilder(); consulta.Append(" SELECT "); consulta.Append(" OFERTA.ID, OFERTA.IDUSUARIO, OFERTA.DESCRICAO, OFERTA.HORARIOPARTIDA, OFERTA.HORARIOCHEGADA "); consulta.Append(" FROM CARONAOFERTA OFERTA, CARONABUSCA BUSCA "); consulta.Append(" WHERE "); consulta.Append(" BUSCA.PONTOPARTIDA.STDistance(OFERTA.TRAJETO) < 1001 AND "); consulta.Append(" BUSCA.PONTOCHEGADA.STDistance(OFERTA.TRAJETO) < 1001 AND "); consulta.Append(" (DATEDIFF(MINUTE, BUSCA.HORARIOCHEGADA, OFERTA.HORARIOCHEGADA) BETWEEN -30 AND 30) AND "); consulta.Append(" ((BUSCA.PONTOPARTIDA.STDistance(OFERTA.PONTOPARTIDA) + BUSCA.PONTOCHEGADA.STDistance(OFERTA.PONTOCHEGADA)) > OFERTA.PONTOPARTIDA.STDistance(OFERTA.PONTOCHEGADA)) AND "); consulta.Append(" BUSCA.ID = '" + id + "' "); var resultado = await contexto.CaronaOferta.FromSql(consulta.ToString()).ToListAsync(); return(resultado); }
public CaronaBuscasController(Carona_ServiceContext context) { _context = context; }
public VeiculosController(Carona_ServiceContext context) { _context = context; }
public UsuariosController(Carona_ServiceContext context) { _context = context; }