public static List <PedidoMapa> ObtenerPendientesApi() { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { int idPendiente = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Pendiente"); var listaPedidos = db.Pedidos.Include("Estados") .Include("Localidades") .Include("Localidades1") .Include("AspNetUsers") .Include("Postulaciones") .Where(x => x.id_estado == idPendiente) .ToList(); List <PedidoMapa> pedidosPendientes = new List <PedidoMapa>(); foreach (var pedido in listaPedidos) { Coordenada origen = new Coordenada(); Coordenada destino = new Coordenada(); if (pedido.lat_origen != null && pedido.lng_origen != null) { origen.lat = Convert.ToDouble(pedido.lat_origen); origen.lng = Convert.ToDouble(pedido.lng_origen); } if (pedido.lat_destino != null && pedido.lng_destino != null) { destino.lat = Convert.ToDouble(pedido.lat_destino); destino.lng = Convert.ToDouble(pedido.lng_destino); } var rangoPrecios = Comunes.ObtenerRangoPrecios(origen, destino); //ver postulado PedidoMapa pedidoMapa = new PedidoMapa() { IdPedido = pedido.IdPedido, IdCliente = pedido.idCliente, NombreCliente = pedido.AspNetUsers.NombreApellido, DescripcionPedido = pedido.descripcion_pedido, ObservacionesPedido = pedido.observaciones_pedido != null? pedido.observaciones_pedido : "Ninguna", DireccionOrigen = pedido.calle_origen + " " + pedido.nro_calle_origen + ", " + pedido.Localidades.Nombre, DireccionDestino = pedido.calle_destino + " " + pedido.nro_calle_destino + ", " + pedido.Localidades1.Nombre, Distancia = Math.Round(Comunes.DistanciaEntreDosPuntosEnKM(origen, destino), 2), Precio = Math.Round(pedido.precio_predido, 2), LatOrigen = pedido.lat_origen != null?Convert.ToDouble(pedido.lat_origen) : 0, LngOrigen = pedido.lng_origen != null?Convert.ToDouble(pedido.lng_origen) : 0, Postulado = false, PrecioMinimo = rangoPrecios.PrecioMinimo, PrecioMaximo = rangoPrecios.PrecioMaximo }; pedidosPendientes.Add(pedidoMapa); } return(pedidosPendientes); } catch (Exception ex) { return(null); } } }
//public static bool crear(string idCliente, int nroDirOrigen, string calleOrigen, int idLocalidadOrigen, // int nroDirDestino, string calleDestino, int idLocalidadDestino, decimal precioPedido) //{ // using (TeloBuscoEntities db = new TeloBuscoEntities()) // { // try // { // Pedidos pedido = new Pedidos(); // pedido.idCliente = idCliente; // pedido.nro_calle_origen = nroDirOrigen; // pedido.calle_origen = calleOrigen; // Localidades localidadOrigen = LocalidadesServicio.obtener(idLocalidadOrigen); // pedido.Localidades = localidadOrigen; // pedido.id_localidad_origen = idLocalidadOrigen; // pedido.nro_calle_destino = nroDirDestino; // pedido.calle_destino = calleDestino; // Localidades localidadDestino = LocalidadesServicio.obtener(idLocalidadDestino); // pedido.Localidades1 = localidadDestino; // pedido.id_localidad_destino = idLocalidadDestino; // pedido.precio_predido = precioPedido; // pedido.id_estado = EstadosPedidoServicio.obtenerIdPorDescripcion("Pendiente"); // db.Pedidos.Add(pedido); // db.SaveChanges(); // return true; // } // catch (Exception ex) // { // return false; // } // } //} public static bool Crear(Pedido pedido) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { Pedidos pedidoAlmacenar = new Pedidos(); pedidoAlmacenar.idCliente = pedido.IdCliente; pedidoAlmacenar.nro_calle_origen = pedido.NroCalleOrigen; pedidoAlmacenar.calle_origen = pedido.CalleOrigen; //Localidades localidadOrigen = LocalidadesServicio.obtener(pedido.IdLocalidadOrigen); Localidades localidadOrigen = db.Localidades.Where(x => x.idLocalidad == pedido.IdLocalidadOrigen).FirstOrDefault(); pedidoAlmacenar.Localidades = localidadOrigen; pedidoAlmacenar.id_localidad_origen = pedido.IdLocalidadOrigen; pedidoAlmacenar.nro_calle_destino = pedido.NroCalleDestino; pedidoAlmacenar.calle_destino = pedido.CalleDestino; //Localidades localidadDestino = LocalidadesServicio.obtener(pedido.IdLocalidadDestino); Localidades localidadDestino = db.Localidades.Where(x => x.idLocalidad == pedido.IdLocalidadDestino).FirstOrDefault(); pedidoAlmacenar.Localidades1 = localidadDestino; pedidoAlmacenar.id_localidad_destino = pedido.IdLocalidadDestino; pedidoAlmacenar.precio_predido = pedido.PrecioPedido; pedidoAlmacenar.id_estado = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Pendiente"); pedidoAlmacenar.descripcion_pedido = pedido.Descripcion; pedidoAlmacenar.observaciones_pedido = pedido.Observaciones; pedidoAlmacenar.IdTipoActividad = TiposActividadesServicio.obtenerIdPorDescripcion("Pedido"); /*ALMACENAR COORDENADAS*/ string Provincia = "Santa Fe"; string Pais = "Argentina"; /*ORIGEN*/ string DireccionOrigen = pedido.CalleOrigen + " " + pedido.NroCalleOrigen + ", " + localidadOrigen.Nombre + ", " + Provincia + ", " + Pais; var coordenadasOrigen = Utilidades.Comunes.ObtenerCoordenada(DireccionOrigen); if (coordenadasOrigen != null) { pedidoAlmacenar.lat_origen = coordenadasOrigen.lat; pedidoAlmacenar.lng_origen = coordenadasOrigen.lng; } /*DESTINO*/ string DireccionDestino = pedido.CalleDestino + " " + pedido.NroCalleDestino + ", " + localidadDestino.Nombre + ", " + Provincia + ", " + Pais; var coordenadasDestino = Utilidades.Comunes.ObtenerCoordenada(DireccionDestino); if (coordenadasDestino != null) { pedidoAlmacenar.lat_destino = coordenadasDestino.lat; pedidoAlmacenar.lng_destino = coordenadasDestino.lng; } db.Pedidos.Add(pedidoAlmacenar); db.SaveChanges(); return(true); } catch (Exception ex) { return(false); } } }
public static void FinalizarPedido(int idPedido) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { var pedido = db.Pedidos.Where(x => x.IdPedido == idPedido).FirstOrDefault(); if (pedido.finalizado_cliente && pedido.finalizado_delivery) { int idEntregado = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Entregado"); pedido.id_estado = idEntregado; db.SaveChanges(); } } }
public static bool Crear(Postulacion postulacion) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { int idTipoActividad = TiposActividadesServicio.obtenerIdPorDescripcion("Postulación"); int idEstadoPostulacion = EstadosServicio.obtenerIdEstadoPostulacionPorDescripcion("Postulado"); Postulaciones postulacionAlmacenar = new Postulaciones { IdTipoActividad = idTipoActividad, IdPedido = postulacion.IdPedido, IdUsuarioPostulado = postulacion.IdUsuarioPostulado, IdEstadoPostulacion = idEstadoPostulacion, TiempoEstimado = postulacion.TiempoEstimado, Precio = postulacion.Precio }; db.Postulaciones.Add(postulacionAlmacenar); db.SaveChanges(); // Crear notificacion int idEstadoPostulacionNotificacion = EstadosServicio.obtenerIdEstadoPostulacionPorDescripcion("No vista"); string idUsuarioReceptor = PedidosServicio.ObtenerIdDueñoPedido(postulacion.IdPedido); string nombrePostulado = AspNetUsersServicio.ObtenerNombrePorId(postulacion.IdUsuarioPostulado); nombrePostulado = nombrePostulado != null ? nombrePostulado : ""; Notificaciones notificacion = new Notificaciones() { IdTipoActividad = idTipoActividad, IdEstadoNotificacion = idEstadoPostulacionNotificacion, Descripcion = "Nueva postulación a su pedido: " + nombrePostulado, IdUsuarioReceptor = idUsuarioReceptor, IdActividad = postulacionAlmacenar.IdPostulacion }; db.Notificaciones.Add(notificacion); db.SaveChanges(); return(true); } catch (Exception ex) { return(false); } } }
public static List <NotificacionApi> ObtenerNotificacionesPostulacionesAceptadasApi(string idUsuario) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { List <NotificacionApi> notificacionesApi = new List <NotificacionApi>(); int idNoVisto = EstadosServicio.obtenerIdPorDescripcion("No vista"); int idPostulacionAceptada = TiposActividadesServicio.obtenerIdPorDescripcion("Postulación Aceptada"); var listaNotificaciones = db.Notificaciones .Include("TiposActividades") .Include("Estados") .Include("AspNetUsers") .Include("Postulaciones") .Include("Postulaciones.Pedidos") .Include("Postulaciones.Pedidos.Localidades") .Include("Postulaciones.Pedidos.Localidades1") .Where(x => x.IdUsuarioReceptor == idUsuario && x.IdEstadoNotificacion == idNoVisto && x.IdTipoActividad == idPostulacionAceptada) .ToList(); foreach (var notificacion in listaNotificaciones) { NotificacionApi notificacionApi = new NotificacionApi() { Descripcion = notificacion.Descripcion, DescripcionPedido = notificacion.Postulaciones.Pedidos.descripcion_pedido, ObservacionPedido = notificacion.Postulaciones.Pedidos.observaciones_pedido != null? notificacion.Postulaciones.Pedidos.observaciones_pedido : "Ninguna", NombreCliente = notificacion.AspNetUsers.NombreApellido, DireccionOrigen = notificacion.Postulaciones.Pedidos.calle_origen + " " + notificacion.Postulaciones.Pedidos.nro_calle_origen + ", " + notificacion.Postulaciones.Pedidos.Localidades.Nombre, DireccionDestino = notificacion.Postulaciones.Pedidos.calle_destino + " " + notificacion.Postulaciones.Pedidos.nro_calle_destino + ", " + notificacion.Postulaciones.Pedidos.Localidades1.Nombre, Precio = Math.Round(notificacion.Postulaciones.Pedidos.precio_predido, 2) }; notificacionesApi.Add(notificacionApi); } return(notificacionesApi); } catch (Exception ex) { return(null); } } }
public static bool MarcarNotificacionComoVisto(int idNotificacion) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { var idVisto = EstadosServicio.obtenerIdPorDescripcion("Vista"); var notificacion = db.Notificaciones.Where(x => x.IdNotificacion == idNotificacion).FirstOrDefault(); notificacion.IdEstadoNotificacion = idVisto; db.SaveChanges(); return(true); } catch (Exception ex) { return(false); } } }
public static List <PedidoMapa> ObtenerPedidosCercanos(Coordenada posicionUsuario, int distancia) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; int codigoEstadoPendiente = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Pendiente"); var pedidos = db.Pedidos.Include("AspNetUsers") .Include("Localidades") .Include("Localidades1") .Include("Postulaciones") .Where(x => x.id_estado == codigoEstadoPendiente) .ToList(); List <PedidoMapa> pedidosCercanos = new List <PedidoMapa>(); foreach (var pedido in pedidos) { if (pedido.lat_origen != null && pedido.lng_origen != null) { Coordenada posicionPedido = new Coordenada(); posicionPedido.lat = Convert.ToDouble(pedido.lat_origen); posicionPedido.lng = Convert.ToDouble(pedido.lng_origen); double distanciaPedido = Utilidades.Comunes.DistanciaEntreDosPuntosEnKM(posicionUsuario, posicionPedido); if (distanciaPedido <= distancia) { PedidoMapa pedidoMapa = ConvertirPedidoAPedidoMapa(pedido); pedidosCercanos.Add(pedidoMapa); } } } return(pedidosCercanos); } catch (Exception) { return(null); } } }
public static List <Notificaciones> ObtenerTodasNotificacionesUsuario(string idUsuario) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; int idNoVisto = EstadosServicio.obtenerIdPorDescripcion("No vista"); return(db.Notificaciones.Include("TiposActividades") .Include("Estados") .Include("AspNetUsers") .Include("Postulaciones") .Where(x => x.IdUsuarioReceptor == idUsuario) .ToList()); } catch (Exception ex) { return(null); } } }
public static List <Pedidos> ObtenerPedidosAsignados(string idDelivery) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { int idEstadoAsignado = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Asignado"); var listPedidos = db.Pedidos.Include("Estados") .Include("Localidades") .Include("Localidades1") .Include("AspNetUsers") .Include("Postulaciones") .Where(x => x.id_estado == idEstadoAsignado && x.idDelivery == idDelivery) .ToList(); return(listPedidos); } catch (Exception ex) { return(null); } } }
public static bool Aceptar(int idPostulacion) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { /*Cambiar el estado de la postulación a: Aceptado*/ int idEstadoAceptado = EstadosServicio.obtenerIdEstadoPostulacionPorDescripcion("Aceptado"); var postulacionAlmacenada = db.Postulaciones.Include("AspNetUsers") .Include("Estados") .Where(x => x.IdPostulacion == idPostulacion) .FirstOrDefault(); postulacionAlmacenada.IdEstadoPostulacion = idEstadoAceptado; db.SaveChanges(); /*Agregar notificacion de aceptado*/ int idTipoActividad = TiposActividadesServicio.obtenerIdPorDescripcion("Postulación Aceptada"); int idEstadoPostulacionNotificacion = EstadosServicio.obtenerIdEstadoPostulacionPorDescripcion("No vista"); string idUsuarioReceptor = postulacionAlmacenada.IdUsuarioPostulado; int idActividad = postulacionAlmacenada.IdPostulacion; Notificaciones notificacion = new Notificaciones() { IdTipoActividad = idTipoActividad, IdEstadoNotificacion = idEstadoPostulacionNotificacion, Descripcion = "¡Postulación aceptada!", IdUsuarioReceptor = idUsuarioReceptor, IdActividad = idActividad }; db.Notificaciones.Add(notificacion); db.SaveChanges(); /*Agregar Delivery y precio al pedido*/ int idPedido = postulacionAlmacenada.IdPedido; int idEstadoAsignado = EstadosServicio.obtenerIdEstadoPedidoPorDescripcion("Asignado"); var pedido = db.Pedidos.Where(x => x.IdPedido == idPedido).FirstOrDefault(); pedido.idDelivery = postulacionAlmacenada.IdUsuarioPostulado; pedido.precio_transporte = postulacionAlmacenada.Precio; pedido.id_estado = idEstadoAsignado; /*Colocar el pedido en estado asignado*/ db.SaveChanges(); /*Cambiar el estado del resto de postulaciones a ese pedudo a: Rechazado*/ int idEstadoRechazado = EstadosServicio.obtenerIdEstadoPostulacionPorDescripcion("Rechazado"); var listaPostulaciones = db.Postulaciones.Include("AspNetUsers") .Include("Estados") .Where(x => x.IdPedido == idPedido && x.IdPostulacion != idPostulacion) .ToList(); foreach (var postulacion in listaPostulaciones) { postulacion.IdEstadoPostulacion = idEstadoRechazado; db.SaveChanges(); /*Agregar notificación de rechazado por cada pedido*/ int idTipoActividadR = TiposActividadesServicio.obtenerIdPorDescripcion("Postulación Rechazada"); int idEstadoPostulacionNotificacionR = EstadosServicio.obtenerIdEstadoPostulacionPorDescripcion("No vista"); string idUsuarioReceptorR = postulacion.IdUsuarioPostulado; int idActividadR = postulacion.IdPostulacion; Notificaciones notificacionR = new Notificaciones() { IdTipoActividad = idTipoActividadR, IdEstadoNotificacion = idEstadoPostulacionNotificacionR, Descripcion = "Lo sentimos, su postulación ha sido rechazada.", IdUsuarioReceptor = idUsuarioReceptorR, IdActividad = idActividadR }; db.Notificaciones.Add(notificacionR); db.SaveChanges(); } return(true); } catch (Exception ex) { return(false); } } }