public static PosicionesDeliverys ObtenerUltimaPosicionDelivery(string idDelivery) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { var listaPosiciones = db.PosicionesDeliverys.Where(x => x.idDelivery == idDelivery).ToList(); if (listaPosiciones.Count == 0) { return(null); } else if (listaPosiciones.Count == 1) { return(listaPosiciones.FirstOrDefault()); } else { DateTime ultimaFechaHora = listaPosiciones.Max(x => x.FechaHoraUltimaPos); return(listaPosiciones.Where(x => x.FechaHoraUltimaPos == ultimaFechaHora).FirstOrDefault()); } } catch (Exception ex) { return(null); } } }
public static bool Editar(Pedido pedido) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { int idPedido = pedido.IdPedido; var pedidoBD = db.Pedidos.Where(x => x.IdPedido == idPedido).FirstOrDefault(); pedidoBD.nro_calle_origen = pedido.NroCalleOrigen; pedidoBD.calle_origen = pedido.CalleOrigen; pedidoBD.id_localidad_origen = pedido.IdLocalidadOrigen; pedidoBD.nro_calle_destino = pedido.NroCalleDestino; pedidoBD.calle_destino = pedido.CalleDestino; pedidoBD.id_localidad_destino = pedido.IdLocalidadDestino; pedidoBD.precio_predido = pedido.PrecioPedido; pedidoBD.descripcion_pedido = pedido.Descripcion; pedidoBD.observaciones_pedido = pedido.Observaciones; db.SaveChanges(); return(true); } catch (Exception ex) { return(false); } } }
/*El delivery califica al cliente y finaliza*/ public static bool CrearValoracionCliente(Valoracion valoracion) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { bool result = false; Valoraciones val = new Valoraciones { IdCliente = valoracion.IdCliente, IdDelivery = valoracion.IdDelivery, Valoracion = valoracion.Puntuacion, Comentario = valoracion.Comentario, IdPedido = valoracion.IdPedido, valoracion_cliente = false, valoracion_delivery = true }; if (PedidosServicio.FinalizarPedidoDelivery(valoracion.IdPedido)) //Finalizo el pedido -> si está ok agrego la valoración { db.Valoraciones.Add(val); db.SaveChanges(); result = true; } return(result); } catch (Exception ex) { return(false); } } }
public static void Crear(CoordenadaApi coordenada) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { string IdDelivery = AspNetUsersServicio.obtenerIdPorEmail(coordenada.Email); if (!string.IsNullOrEmpty(IdDelivery)) { var posicionUsuario = db.PosicionesDeliverys.Where(x => x.idDelivery == IdDelivery).FirstOrDefault(); if (posicionUsuario != null) { //Si el delivery ya tiene alguna posición almacenada, la actualizo posicionUsuario.lat = coordenada.Lat; posicionUsuario.lng = coordenada.Lng; posicionUsuario.FechaHoraUltimaPos = DateTime.Now; db.SaveChanges(); } else { //Si el delivery no tiene alguna posición almacenada, la creo PosicionesDeliverys posicionDelivery = new PosicionesDeliverys() { idDelivery = IdDelivery != null ? IdDelivery : "", lat = coordenada.Lat, lng = coordenada.Lng, FechaHoraUltimaPos = DateTime.Now }; db.PosicionesDeliverys.Add(posicionDelivery); db.SaveChanges(); } } } }
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 string obtenerDescripcionPorId(int idTipoActividad) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.TiposActividades.Where(x => x.IdTipoActividad == idTipoActividad).FirstOrDefault().Descripcion); } catch (Exception ex) { return(null); } } }
public static AspNetUsers obtenerPorEmail(string email) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.AspNetUsers.Where(x => x.Email == email).FirstOrDefault()); } catch (Exception ex) { return(null); } } }
public static bool existeEmail(string Email) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.AspNetUsers.Any(x => x.Email == Email)); } catch (Exception ex) { return(false); } } }
public static bool existeUserName(string UserName) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.AspNetUsers.Any(x => x.UserName == UserName)); } catch (Exception ex) { return(false); } } }
public static string ObtenerNombrePorId(string id) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.AspNetUsers.Where(x => x.Id == id).FirstOrDefault().NombreApellido); } catch (Exception ex) { return(null); } } }
public static Localidades obtener(int id) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Localidades.Where(x => x.idLocalidad == id).FirstOrDefault()); } catch (Exception ex) { return(null); } } }
public static string obtenerIdUsuarioPorUserName(string UserName) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.AspNetUsers.Where(x => x.UserName == UserName).FirstOrDefault().Id); } catch (Exception ex) { return(null); } } }
public static string ObtenerIdDueñoPedido(int idPedido) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Pedidos.Where(x => x.IdPedido == idPedido).FirstOrDefault().idCliente); } catch { return(null); } } }
public static List <Localidades> obtenerTodas() { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Localidades.ToList()); } catch (Exception ex) { return(null); } } }
public static int obtenerIdPorDescripcion(string descripcion) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Estados.Where(x => x.Descripcion == descripcion).FirstOrDefault().IdEstado); } catch (Exception ex) { return(0); } } }
public static List <Estados> obtenerTodos() { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Estados.ToList()); } catch (Exception ex) { return(null); } } }
public static List <AspNetUsers> obtenerTodos() { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.AspNetUsers.ToList()); //Ver includes necesarios } catch (Exception ex) { return(null); } } }
public static double ObtenerPuntaje(string id) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { var valoraciones = db.Valoraciones.Where(x => x.IdDelivery == id).ToArray(); return(valoraciones.Average(x => x.Valoracion)); } catch { } return(0); } }
public static bool?Postulado(int idPedido, string IdUsuario) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { var listaPostulaciones = db.Postulaciones.Where(x => x.IdPedido == idPedido); return(listaPostulaciones.Any(x => x.IdUsuarioPostulado == IdUsuario)); } catch (Exception ex) { return(null); } } }
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 bool Eliminar(string id) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { var usuario = db.AspNetUsers.Where(x => x.Id == id).FirstOrDefault(); db.AspNetUsers.Remove(usuario); db.SaveChanges(); return(true); } catch (Exception ex) { return(false); } } }
public static int obtenerIdEstadoPostulacionPorDescripcion(string descripcion) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { int idTipoActividad = TiposActividadesServicio.obtenerIdPorDescripcion("Postulación"); return(db.Estados.Where(x => x.IdTipoActividad == idTipoActividad && x.Descripcion == descripcion) .FirstOrDefault().IdEstado); } catch (Exception ex) { return(0); } } }
public static List <Notificaciones> ObtenerTodasNotificaciones() { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Notificaciones.Include("TiposActividades") .Include("Estados") .Include("AspNetUsers") .Include("Postulaciones"). ToList()); } catch (Exception ex) { return(null); } } }
public static List <Pedidos> ObtenerPedidosCliente(string idCliente) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Pedidos.Include("Estados") .Include("Localidades") .Include("Localidades1") .Where(x => x.idCliente == idCliente) .ToList()); } catch (Exception ex) { return(null); } } }
public static Postulaciones Obtener(int id) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { return(db.Postulaciones.Include("TiposActividades") .Include("Pedidos") .Include("AspNetUsers") .Include("Estados") .Where(x => x.IdPostulacion == id).FirstOrDefault()); } catch (Exception ex) { return(null); } } }
public static bool FinalizarPedidoDelivery(int idPedido) { using (TeloBuscoEntities db = new TeloBuscoEntities()) { try { var pedido = db.Pedidos.Where(x => x.IdPedido == idPedido).FirstOrDefault(); pedido.finalizado_delivery = true; db.SaveChanges(); FinalizarPedido(idPedido); //Valida si está finalizado tanto por el delivery como por el cliente y pasa el pedido a: Entregado return(true); } catch (Exception ex) { return(false); } } }
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 <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); } } }