public ActionResult Postularse(int idPedido) { var pedido = Servicios.AccesoDatos.PedidosServicio.ObtenerPedidoPorId(idPedido); PostulacionesViewModel postulacion = new PostulacionesViewModel(); postulacion.IdPedido = idPedido; if (pedido != null) { postulacion.pedidoDetalles = Servicios.AccesoDatos.PedidosServicio.ConvertirPedidoAPedidoMapa(pedido); Utilidades.ClasesAuxiliares.Coordenada coordenadaOrigen = new Utilidades.ClasesAuxiliares.Coordenada { lat = Convert.ToDouble(pedido.lat_origen), lng = Convert.ToDouble(pedido.lng_origen) }; Utilidades.ClasesAuxiliares.Coordenada coordenadaDestino = new Utilidades.ClasesAuxiliares.Coordenada { lat = Convert.ToDouble(pedido.lat_destino), lng = Convert.ToDouble(pedido.lng_destino) }; postulacion.pedidoDetalles.Distancia = Math.Round(Utilidades.Comunes.DistanciaEntreDosPuntosEnKM(coordenadaOrigen, coordenadaDestino), 2); var precio = Utilidades.Comunes.ObtenerRangoPrecios(coordenadaOrigen, coordenadaDestino); postulacion.precioMinimo = precio.PrecioMinimo; postulacion.precioMaximo = precio.PrecioMaximo; } return(View(postulacion)); }
public ActionResult Postulacion(PostulacionesViewModel postulacion) { int idPostulacion = postulacion.IdPostulacion; if (Servicios.AccesoDatos.PostulacionesServicio.Aceptar(idPostulacion)) { TempData["Message"] = "Se ha aceptado la postulación correctamente"; } else { TempData["Message"] = "No se ha podido aceptar la postulación."; } return(RedirectToAction("Index", "Pedidos")); }
public ActionResult Postulacion(int idPostulacion) { Datos.Postulaciones postulacion = Servicios.AccesoDatos.PostulacionesServicio.Obtener(idPostulacion); /*Obtiene el pedido de la base de datos y lo transforma en un objeto de la clase necesaria (PedidoMapa)*/ var pedidoDetalles = Servicios.AccesoDatos.PedidosServicio.ConvertirPedidoAPedidoMapa(Servicios.AccesoDatos.PedidosServicio.ObtenerPedidoPorId(postulacion.IdPedido)); var valoracion = Servicios.AccesoDatos.ValoracionesServicios.ObtenerPuntaje(postulacion.IdUsuarioPostulado); PostulacionesViewModel postulacionesViewModel = new PostulacionesViewModel() { TiempoEstimado = postulacion.TiempoEstimado, Precio = postulacion.Precio, IdPedido = postulacion.IdPedido, IdPostulacion = postulacion.IdPostulacion, pedidoDetalles = pedidoDetalles, IdPostulado = postulacion.IdUsuarioPostulado, PostuladoNombreApellido = postulacion.AspNetUsers.NombreApellido, ValoracionDelivery = valoracion, Estado = postulacion.Estados.Descripcion }; return(View(postulacionesViewModel)); }
public ActionResult Postularse(PostulacionesViewModel postulacion) { try { if (ModelState.IsValid) { bool precioValido = Servicios.AccesoDatos.PedidosServicio.ValidarPrecio(postulacion.precioMinimo, postulacion.Precio, postulacion.precioMaximo); if (precioValido) { var userName = User.Identity.Name; var IdUsuarioPostulado = Servicios.AspNetUsersServicio.obtenerIdUsuarioPorUserName(userName); bool?Postulado = Servicios.AccesoDatos.PostulacionesServicio.Postulado(postulacion.IdPedido, IdUsuarioPostulado); if (Postulado == false) { var idDueñoPedido = Servicios.AccesoDatos.PedidosServicio.ObtenerPedidoPorId(postulacion.IdPedido).idCliente; if (IdUsuarioPostulado != idDueñoPedido) { Postulacion postulacionAlmacenar = new Postulacion() { IdPedido = postulacion.IdPedido, IdUsuarioPostulado = IdUsuarioPostulado, TiempoEstimado = postulacion.TiempoEstimado, Precio = postulacion.Precio }; if (Servicios.AccesoDatos.PostulacionesServicio.Crear(postulacionAlmacenar)) { TempData["Message"] = "La postulación fue exitosa."; } else { TempData["Message"] = "No ha sido posible efectuar la postulación. Vuelva a intentar más tarde."; } } else { TempData["Message"] = "El cliente y el delivery no pueden ser la misma persona"; } } else if (Postulado == true) { TempData["Message"] = "Ya se encuentra postulado. No es posible postularse más de una vez al mismo pedido."; } else { TempData["Message"] = "No ha sido posible efectuar la postulación. Vuelva a intentar más tarde."; } return(RedirectToAction("Pedidos")); //Redireccionar a vista de pedidos cercanos } else { ModelState.AddModelError("Precio", "El precio ingresado no se encuentra en el rango aceptado."); } } var pedido = Servicios.AccesoDatos.PedidosServicio.ObtenerPedidoPorId(postulacion.IdPedido); if (pedido != null) { postulacion.pedidoDetalles = Servicios.AccesoDatos.PedidosServicio.ConvertirPedidoAPedidoMapa(pedido); } return(View(postulacion)); } catch { var pedido = Servicios.AccesoDatos.PedidosServicio.ObtenerPedidoPorId(postulacion.IdPedido); if (pedido != null) { postulacion.pedidoDetalles = Servicios.AccesoDatos.PedidosServicio.ConvertirPedidoAPedidoMapa(pedido); } return(View(postulacion)); } }