public async System.Threading.Tasks.Task <ActionResult> Postularse(int id)
        {
            Propuesta propuesta = await db.Propuestas.FindAsync(id);

            Usuario usuario = ObtenerUsuarioActual(User);

            if (usuario.Id != propuesta.Creador.Id)
            {
                if (usuario.Rol != propuesta.Creador.Rol)
                {
                    if (propuesta.Activa == true)
                    {
                        Postulacion postulacion = new Postulacion();
                        postulacion.Propuesta   = propuesta;
                        postulacion.PropuestaId = propuesta.Id;
                        postulacion.Usuario     = usuario;
                        postulacion.UsuarioId   = usuario.Id;

                        propuesta.Postulaciones.Add(postulacion);
                        usuario.Postulaciones.Add(postulacion);


                        db.Entry(propuesta).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }

            int idaux = propuesta.Id;

            return(RedirectToAction("Details", new { Id = idaux }));
        }
Ejemplo n.º 2
0
        public void dada_una_postulacion_con_mas_de_una_etapa_deberia_devolverme_la_etapa_en_una_fecha_dada()
        {
            var una_postulacion = new Postulacion();
            var etapas          = new List <EtapaPostulacion>();
            var fecha_etapa1    = DateTime.Now.AddMonths(-9);
            var fecha_etapa2    = DateTime.Now.AddMonths(-6);
            var fecha_etapa3    = DateTime.Now.AddMonths(-3);

            etapas.Add(new EtapaPostulacion()
            {
                Fecha     = fecha_etapa1,
                Etapa     = new EtapaConcurso(1, "Etapa 1"),
                IdUsuario = 1
            });
            etapas.Add(new EtapaPostulacion()
            {
                Fecha     = fecha_etapa2,
                Etapa     = new EtapaConcurso(2, "Etapa 2"),
                IdUsuario = 2
            });
            etapas.Add(new EtapaPostulacion()
            {
                Fecha     = fecha_etapa3,
                Etapa     = new EtapaConcurso(3, "Etapa 3"),
                IdUsuario = 3
            });
            una_postulacion.Etapas = etapas;
            Assert.IsTrue(una_postulacion.Etapas.Count.Equals(3));
            Assert.IsTrue(una_postulacion.EtapaEn(DateTime.Now.AddMonths(-4)).Etapa.Descripcion.Equals("Etapa 2"));
        }
Ejemplo n.º 3
0
 public void Setup()
 {
     conexion                    = TestObjects.ConexionMockeada();
     perfil                      = TestObjects.UnPerfil();
     cv                          = TestObjects.UnCV();
     creador                     = new CreadorDePantallas();
     un_item_estudio             = TestObjects.UnEstudioUniversitario();
     un_item_experiencia_publica = TestObjects.UnaExpPublica();
     postulacion                 = TestObjects.UnaPostulacion();
     listaDocRecibida            = new List <DocumentacionRecibida>();
 }
Ejemplo n.º 4
0
 public static void Update(Postulacion p)
 {
     if (p == null)
     {
         throw new Exception("Error al cargar el partido");
     }
     else
     {
         PersistenciaPostulacion.Update(p);
     }
 }
Ejemplo n.º 5
0
 public static void Add(Postulacion p, int postulanteId)
 {
     if (p == null)
     {
         throw new Exception("Error al cargar el parido");
     }
     else
     {
         PersistenciaPostulacion.Add(p, postulanteId);
     }
 }
Ejemplo n.º 6
0
        private void VerDatosPostulacion(int IdPostulacion)
        {
            Postulacion P = LogicaPostulacion.FindbyId(IdPostulacion);

            if (P != null)
            {
                HdnIdPostulacion.Value = P.PostulacionId.ToString();
                LblNombre.Text         = P.Jugador.NombreCompleto();
                LblFecha.Text          = P.Fecha.ToString().Split(':')[0] + ":" + P.Fecha.ToString().Split(':')[1];
                LblComentario.Text     = P.Comentario;
            }
        }
Ejemplo n.º 7
0
        public void deberia_generar_un_anexo_para_los_inscriptos()
        {
            //List<EtapaConcurso> etapas = new List<EtapaConcurso> { ConstantesConcursar.EtapaPreinscripcionDocumental };
            EtapaConcurso      una_etapa       = ConstantesConcursar.EtapaPreinscripcionDocumental;
            Postulacion        una_postulacion = TestObjects.UnaPostulacion();
            List <Postulacion> resultado       = new List <Postulacion>();

            Dictionary <string, object> parametros = new Dictionary <string, object>();

            AnexosDeEtapas anexo = RepoPostular().GenerarAnexosPara(una_etapa.Id, una_postulacion, TestObjects.UsuarioMesaEntrada());

            //FC TERMINAR LOS ANEXOS!!!!! EL GET DESDE EL REPO y EL GUARDAR
            Assert.AreEqual(1, RepoPostular().GetAnexoById(1).Id);
        }
Ejemplo n.º 8
0
 protected void RegistrarPostulacion_Click(object sender, EventArgs e)
 {
     if (DDLHoras.SelectedValue != null)
     {
         int         postulanteId = ((Jugador)Session["Logueado"]).JugadorId;
         Postulacion P            = new Postulacion
         {
             Comentario = TxtComentario.Text,
             Fecha      = DateTime.Parse(TxtFecha.Text + " " + DDLHoras.SelectedValue),
             Lugar      = TxtLugar.Text,
             Confirmada = false
         };
         LogicaPostulacion.Add(P, postulanteId);
     }
 }
Ejemplo n.º 9
0
 public static void Update(Postulacion p)
 {
     try
     {
         using (DesafioContext db = new DesafioContext())
         {
             db.Entry(p).State = EntityState.Modified;
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         throw new Exception("Error al Actualizar - Verifique los Datos" + ex.Message);
     }
 }
Ejemplo n.º 10
0
        public async Task <bool> Postularse(Postulacion postulacion)
        {
            string url = "http://wappo.apphb.com/api/PostulacionApi/Postularse";

            using (var httpClient = new HttpClient())
            {
                var content  = new StringContent(JsonConvert.SerializeObject(postulacion), UnicodeEncoding.UTF8, "application/json");
                var response = await httpClient.PostAsync(url, content);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    return(true);
                }
                return(false);
            }
        }
Ejemplo n.º 11
0
        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);
                }
            }
        }
Ejemplo n.º 12
0
 public IHttpActionResult postular(Postulacion pos)
 {
     using (var dbContextTransaction = _db.Database.BeginTransaction())
     {
         try
         {
             _db.Postulaciones.Add(pos);
             _db.SaveChanges();
             dbContextTransaction.Commit();
         }
         catch (Exception)
         {
             dbContextTransaction.Rollback();
         }
     }
     return(Ok(pos));
 }
Ejemplo n.º 13
0
        public void dada_una_postulacion_en_la_primer_etapa_deberia_devolverme_el_usuario_y_la_fecha_de_la_etapa()
        {
            var una_postulacion = new Postulacion();
            var etapas          = new List <EtapaPostulacion>();
            var fecha_etapa     = DateTime.Now.AddMonths(-3);

            etapas.Add(new EtapaPostulacion()
            {
                Fecha     = fecha_etapa,
                Etapa     = new EtapaConcurso(1, "Etapa 1"),
                IdUsuario = 1
            });
            una_postulacion.Etapas = etapas;
            Assert.IsTrue(una_postulacion.Etapas.Count.Equals(1));
            Assert.IsNotNull(una_postulacion.Etapas.First().Fecha);
            Assert.IsNotNull(una_postulacion.Etapas.First().IdUsuario);
        }
Ejemplo n.º 14
0
 public static void ConfirmarPostulacionEnPartido(int jugadorId, int postulacionId, string comentarioNuevo)
 {
     using (DesafioContext db = new DesafioContext())
     {
         Jugador     jugador     = db.Jugadores.FirstOrDefault(x => x.JugadorId == jugadorId);
         Postulacion postulacion = db.Postulaciones.FirstOrDefault(x => x.PostulacionId == postulacionId);
         Partido     P           = new Partido
         {
             JugadorDesafiante = postulacion.Jugador,
             JugadorDesafiado  = jugador,
             Fecha             = postulacion.Fecha,
             Lugar             = postulacion.Lugar,
             Comentario        = postulacion.Comentario + ". " + comentarioNuevo
         };
         postulacion.Confirmada = true;
         db.Partidos.Add(P);
         db.SaveChanges();
     }
 }
        public async System.Threading.Tasks.Task <ActionResult> AceptarPostulacion(int id)
        {
            Postulacion postulacion = await db.Postulaciones.FindAsync(id);

            Usuario usuario = ObtenerUsuarioActual(User);

            if (postulacion != null && usuario.Id == postulacion.Propuesta.Creador.Id)
            {
                postulacion.Propuesta.UsuarioGanador   = postulacion.Usuario;
                postulacion.Propuesta.UsuarioGanadorId = postulacion.Usuario.Id;
                postulacion.Propuesta.Activa           = false;
                db.Entry(postulacion).State            = EntityState.Modified;
                await db.SaveChangesAsync();
            }

            //ir al dashboard

            return(RedirectToRoute("/Dashboard"));
        }
Ejemplo n.º 16
0
 public static void Delete(int id)
 {
     try
     {
         using (DesafioContext db = new DesafioContext())
         {
             Postulacion postulacion = db.Postulaciones.FirstOrDefault(x => x.PostulacionId == id);
             if (postulacion != null)
             {
                 db.Postulaciones.Remove(postulacion);
                 db.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         throw new Exception("Error al Eliminar - Verifique los datos" + ex.Message);
     }
 }
Ejemplo n.º 17
0
        private async void Button_OnClicked(object sender, EventArgs e)
        {
            int     tiempo   = Convert.ToInt32(tiempoText.Text);
            decimal precio   = Convert.ToDecimal(precioText.Text);
            string  email    = postulacionViewModel.EmailUsuario;
            int     idPedido = postulacionViewModel.IdPedido;

            if (precio >= _precioMinimo && precio <= _precioMaximo)
            {
                string JWT = App.JWT;
                JWT = JWT.Trim('\\', '"');
                Postulacion postulacion = new Postulacion()
                {
                    EmailUsuario = email,
                    JWT          = JWT,
                    IdPedido     = idPedido,
                    Tiempo       = tiempo,
                    Precio       = precio
                };

                bool postulacionCorrecta = await _postulacionService.Postularse(postulacion);

                if (postulacionCorrecta)
                {
                    await Navigation.PushAsync(new Views.PostulacionCorrectaPage());

                    //await DisplayAlert("Postulación", "¡Postulación correcta!", "Aceptar");
                }
                else
                {
                    await Navigation.PushAsync(new Views.PostulacionIncorrectaPage());

                    //await DisplayAlert("Postulación", "Postulación incorrecta", "Aceptar");
                }
                //await Navigation.PushAsync(new Views.MainPage()); //Aparece doble la parte superior
            }
            else
            {
                await DisplayAlert("Precio", "El precio no se encuentra dentro del rango válido.", "Aceptar");
            }
        }
Ejemplo n.º 18
0
        public static void Add(Postulacion p, int postulanteId)
        {
            // en pagina de postulaciones ver Postulacion con boton de "Coordinar con el rival"
            // en el chat, que haya un boton para cofirmar partido(postulante)
            // mensaje al chat "el partido ya no esta disponible"

            try
            {
                using (DesafioContext db = new DesafioContext())
                {
                    Jugador postulante = db.Jugadores.FirstOrDefault(x => x.JugadorId == postulanteId);
                    p.Jugador = postulante;
                    db.Postulaciones.Add(p);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Error al Eliminar -" + ex.Message);
            }
        }
Ejemplo n.º 19
0
        public void SetPostulacion([FromBody] Postulacion postulacion)
        {
            DateTime myDateTime       = DateTime.Now;
            string   sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");

            string        connectionstring = _configuration.GetConnectionString("DefaultConnectionString");
            SqlConnection connection       = new SqlConnection(connectionstring);

            connection.Open();

            SqlCommand com = new SqlCommand("insert into postulaciones (alumno, propuesta, perfil, alta) " +
                                            "values (@alumno, @propuesta, (select id from perfil where alumno = @alumno), @alta)", connection);

            com.Parameters.AddWithValue("@alumno", postulacion.AlumnoId);
            com.Parameters.AddWithValue("@propuesta", postulacion.PropuestaId);
            com.Parameters.AddWithValue("@alta", sqlFormattedDate);

            com.ExecuteReader();

            CrearEtapaSeleccionAlumno(postulacion.AlumnoId, postulacion.PropuestaId, postulacion.EmpresaId);

            connection.Close();
        }
Ejemplo n.º 20
0
        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));
            }
        }