Exemplo n.º 1
0
        //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 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);
                }
            }
        }
Exemplo n.º 3
0
 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 <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 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);
                }
            }
        }