public IHttpActionResult ListadoVehiculos([FromUri] int idCiudad)
        {
            try
            {
                var client      = new ServiceReference1.WCFReservaVehiculosClient();
                var credentials = Credenciales();

                var request = new ServiceReference1.ConsultarVehiculosRequest();
                request.IdCiudad = idCiudad;
                var valor = client.ConsultarVehiculosDisponibles(credentials, request);

                List <object> vehiculos = new List <object>();
                //SE LE SUMA UN 20% DEL VALOR
                foreach (var item in valor.VehiculosEncontrados)
                {
                    decimal precio      = item.PrecioPorDia;
                    decimal precioFinal = precio * (decimal)1.2;
                    item.PrecioPorDia = precioFinal;


                    //No se por que no reconoce o agrega el ID del Vehiculo
                    vehiculos.Add(new { Id      = "" + item.Id, Marca = "" + item.Marca, Modelo = "" + item.Modelo, Puertas = "" + item.CantidadPuertas,
                                        Puntaje = "" + item.Puntaje, Precio = "" + precioFinal });
                }
                return(Json(vehiculos));
            }
            catch (Exception ex)
            {
                return(NotFound());
            }
        }
        public IHttpActionResult ObtenerCiudad(int id)
        {
            try
            {
                var client      = new ServiceReference1.WCFReservaVehiculosClient();
                var credentials = Credenciales();

                var request = new ServiceReference1.ConsultarCiudadesRequest();
                request.IdPais = (int)id;
                var valor = client.ConsultarCiudades(credentials, request);

                List <object> Ciudades = new List <object>();

                foreach (var ciudad in valor.Ciudades)
                {
                    Ciudades.Add(new { Id = ciudad.Id, Nombre = ciudad.Nombre });
                }

                return(Json(Ciudades));
            }
            catch (Exception ex)
            {
                return(NotFound());
            }
        }
        public IHttpActionResult ReservarVehiculo([FromBody] DetalleReserva reserva)
        {
            //TIRO EN POSTMAN
            //http://localhost:26812/api/Vehiculos/ReservarVehiculos?nomyape="Santiago Innocenti"&fhdev=2019-06-22T13:45:30&fhret=2019-06-23T13:45:30&idVehCiudad=58&lugarDev=Plaza Colon&lugarRet=Aeropuerto&doc=123456789


            try
            {
                var client      = new ServiceReference1.WCFReservaVehiculosClient();
                var credentials = Credenciales();

                var request = new ServiceReference1.ReservarVehiculoRequest();
                request.ApellidoNombreCliente = reserva.ApellidoNombreCliente;
                request.FechaHoraDevolucion   = reserva.FechaHoraDevolucion;
                request.FechaHoraRetiro       = reserva.FechaHoraRetiro;
                request.IdVehiculoCiudad      = reserva.IDVehiculoCiudad;
                request.NroDocumentoCliente   = reserva.NroDocumentoCliente;
                //request.LugarRetiro = reserva.LugarRetiro;
                //request.LugarDevolucion = reserva.LugarDevolucion;
                var valor = client.ReservarVehiculo(credentials, request);

                decimal costoReserva       = valor.Reserva.TotalReserva; //VIENE EN NEGATIVO, POR ESO SE MULTIPLICA POR -1
                decimal precioFinalReserva = costoReserva * (decimal)1.2;
                string  codigoReserva      = valor.Reserva.CodigoReserva;

                Reserva nuevaReserva = new Reserva();
                nuevaReserva.IdCliente     = reserva.IdUsuario;
                nuevaReserva.CodigoReserva = codigoReserva;
                nuevaReserva.FechaReserva  = reserva.FechaHoraRetiro;

                nuevaReserva.Costo            = (double)costoReserva;
                nuevaReserva.PrecioVenta      = (double)precioFinalReserva;
                nuevaReserva.IdVehiculoCiudad = reserva.IDVehiculoCiudad;
                nuevaReserva.IdCiudad         = valor.Reserva.VehiculoPorCiudadEntity.CiudadId;
                //nuevaReserva.idPais = valor.Reserva.VehiculoPorCiudadEntity;

                db.Reserva.Add(nuevaReserva);
                db.SaveChanges();

                return(Ok(nuevaReserva.ToString()));
            }
            catch (Exception)
            {
                return(NotFound());
            }
        }
        public IHttpActionResult CancelarReserva([FromUri] string codigoReserva)
        {
            try
            {
                var client      = new ServiceReference1.WCFReservaVehiculosClient();
                var credentials = Credenciales();

                var request = new ServiceReference1.CancelarReservaRequest();
                request.CodigoReserva = codigoReserva;
                var     valor   = client.CancelarReserva(credentials, request);
                Reserva reserva = db.Reserva.Where(x => x.CodigoReserva == codigoReserva).FirstOrDefault();
                db.Reserva.Remove(reserva);
                db.SaveChanges();

                return(Ok(reserva.CodigoReserva));
            }
            catch (Exception ex)
            {
                return(NotFound());
            }
        }
        //Equivale a Consultar el Detalle de una Reserva
        public IHttpActionResult ConsultarReserva([FromUri] string codigo)
        {
            try
            {
                var client      = new ServiceReference1.WCFReservaVehiculosClient();
                var credentials = Credenciales();

                var request = new ServiceReference1.ConsultarReservasRequest();
                request.CodigoReserva = codigo;
                var valor = client.ConsultarReserva(credentials, request);

                return(Ok(new { ApellidoNombreCliente = valor.Reserva.ApellidoNombreCliente, CodigoReserva = valor.Reserva.CodigoReserva,
                                Estado = valor.Reserva.Estado, FechaCancelacion = valor.Reserva.FechaCancelacion,
                                FechaHoraDevolucion = valor.Reserva.FechaHoraDevolucion, FechaHoraRetiro = valor.Reserva.FechaHoraRetiro,
                                FechaReserva = valor.Reserva.FechaReserva, Id = valor.Reserva.Id, LugarDevolucion = valor.Reserva.LugarDevolucion,
                                LugarRetiro = valor.Reserva.LugarRetiro, NroDocumentoCliente = valor.Reserva.NroDocumentoCliente,
                                TotalReserva = valor.Reserva.TotalReserva }));
            }
            catch (Exception ex)
            {
                return(NotFound());
            }
        }
        public IHttpActionResult ObtenerPaises()
        {
            //TIRO EN POSTMAN: http://localhost:26812/api/Reservas/Paises
            try
            {
                var client      = new ServiceReference1.WCFReservaVehiculosClient();
                var credentials = Credenciales();

                var valor = client.ConsultarPaises(credentials);

                List <object> Paises = new List <object>();

                foreach (var pais in valor.Paises)
                {
                    Paises.Add(new { Id = pais.Id, Nombre = pais.Nombre });
                }

                return(Json(Paises));
            }
            catch (Exception ex)
            {
                return(NotFound());
            }
        }