コード例 #1
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,IdUsuario,Descricao,HorarioPartida,HorarioChegada")] CaronaOferta caronaOferta)
        {
            if (id != caronaOferta.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(caronaOferta);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CaronaOfertaExists(caronaOferta.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(caronaOferta));
        }
コード例 #2
0
        // GET: CaronaBuscas
        public async Task <string> IndexBusca(CaronaOferta carona)
        {
            var caronasBuscadas = await CaronaUtil.ConsulteCaronasBuscadasAsync(carona.Id.ToString(), _context);

            //return  RedirectToAction("IndexResultadoBusca", "CaronaOfertas", carona); // View(nameof(), model);

            var retorno = JsonConvert.SerializeObject(caronasBuscadas);

            return(retorno);
        }
コード例 #3
0
        public async Task <IActionResult> CadastrarOferta([Bind("Id,IdUsuario,Descricao,HorarioChegada")] CaronaOferta carona)
        {
            if (ModelState.IsValid)
            {
                carona.Id = Guid.NewGuid();
                _context.Add(carona);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(carona));
        }
コード例 #4
0
ファイル: CaronaUtil.cs プロジェクト: ygorats/Solucao_Carona
        public static async Task <int> CadastreCaronaOfertaAsync(CaronaOferta carona, Carona_ServiceContext contexto)
        {
            DefinePontos(carona.PontoPartida, carona.PontoChegada, carona.PontosIntermediarios);

            var origem  = string.Concat("geography::STPointFromText('POINT(", _pontoOrigem, ")', 4985), ");
            var destino = string.Concat("geography::STPointFromText('POINT(", _pontoDestino, ")', 4985), ");
            var trajeto = string.Concat("geography::STLineFromText('LINESTRING(", _pontoOrigem, ", ", _pontosIntermediarios, ", ", _pontoDestino, ")', 4985), ");


            var sql = new StringBuilder();

            sql.Append("INSERT INTO CARONAOFERTA (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);
        }