public static void Crear(PropuestasValoraciones model)
        {
            if (model.IdUsuario != 0)
            {
                var valore = Valore(model.IdPropuesta);
                if (valore != null)
                {
                    Db.PropuestasValoraciones.Remove(valore);
                }
                if (valore == null || valore.Valoracion != model.Valoracion)
                {
                    Db.PropuestasValoraciones.Add(model);
                }

                try
                {
                    Db.CustomSaveChanges();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var errors in ex.EntityValidationErrors)
                    {
                        foreach (var validationError in errors.ValidationErrors)
                        {
                            // get the error message
                            string errorMessage = validationError.ErrorMessage;
                        }
                    }
                }
            }
        }
        public bool VerificarSiEstaValorado(int idUsuario, int idPropuesta)
        {
            bool result = false;
            PropuestasValoraciones propuestasValoraciones = ctx.PropuestasValoraciones.Where(x => x.IdUsuario == idUsuario && x.IdPropuesta == idPropuesta).FirstOrDefault();

            if (propuestasValoraciones != null)
            {
                result = true;
            }
            return(result);
        }
Exemplo n.º 3
0
        public ActionResult Valorar(string mg, string nmg, PropuestasValoraciones pv)
        {
            var propuestasValoraciones = new PropuestasValoraciones
            {
                IdPropuesta = pv.IdPropuesta,
                IdUsuario   = SessionHelper.Usuario.IdUsuario,
                Valoracion  = nmg == null
            };

            PropuestasValoracionesService.Crear(propuestasValoraciones);
            PropuestaService.PutPorcentajeAceptacion(pv.IdPropuesta);
            return(RedirectToAction("Detalle", "Propuesta", new { id = pv.IdPropuesta }));
        }
        //private void ModificarPropuestaInsumos(PropuestasDonacionesInsumos propuesta)
        //{
        //    PropuestasDonacionesInsumos propuestaModificada = context.PropuestasDonacionesHorasTrabajo
        //        .Find(propuesta.IdPropuestaDonacionHorasTrabajo);
        //    propuestaModificada.Profesion = propuesta.Profesion;
        //    propuestaModificada.CantidadHoras = propuesta.CantidadHoras;
        //    context.SaveChanges();
        //}
        public void Valorar(int id, int idUser, string valor)
        {
            var result = context.PropuestasValoraciones.Where(p => p.IdPropuesta == id)
                         .Where(p => p.IdUsuario == idUser).FirstOrDefault();

            if (result == null)
            {
                PropuestasValoraciones valoracion = new PropuestasValoraciones();
                valoracion.IdPropuesta = id;
                valoracion.IdUsuario   = idUser;
                if (valor == "Like")
                {
                    valoracion.Valoracion = true;
                }
                else if (valor == "Dislike")
                {
                    valoracion.Valoracion = false;
                }
                else
                {
                    return;
                }
                context.PropuestasValoraciones.Add(valoracion);
            }
            else
            {
                if (valor == "Like")
                {
                    result.Valoracion = true;
                }
                else if (valor == "Dislike")
                {
                    result.Valoracion = false;
                }
                else
                {
                    return;
                }
            }
            context.SaveChanges();
            CalcularValoracion(id);
        }
Exemplo n.º 5
0
        public void NoMeGusta(int Id)
        {
            PropuestasValoraciones v = new PropuestasValoraciones();
            int idUsuario            = SesionServicio.UsuarioSesion.IdUsuario;
            var p = ObtenerPropuestaPorId(Id);

            var calificado = ctx.PropuestasValoraciones.Where(x => x.IdPropuesta == Id && idUsuario == x.IdUsuario).FirstOrDefault();

            if (calificado == null)
            {
                v.IdPropuesta = p.IdPropuesta;
                v.IdUsuario   = idUsuario;
                v.Valoracion  = false;
                ctx.PropuestasValoraciones.Add(v);
                ctx.SaveChanges();
            }
            else
            {
                calificado.Valoracion = false;
                ctx.SaveChanges();
            }
        }
        public void ValorarPropuesta(int idUsuario, int idPropuesta, bool valoracion)
        {
            PropuestasValoraciones propuestasValoraciones = new PropuestasValoraciones();

            propuestasValoraciones.IdPropuesta = idPropuesta;
            propuestasValoraciones.IdUsuario   = idUsuario;
            PropuestasValoraciones propuestasValoracionesBuscada = ctx.PropuestasValoraciones.Where(x => x.IdUsuario == idUsuario && x.IdPropuesta == idPropuesta).FirstOrDefault();
            bool usuarioYaValoro = propuestasValoracionesBuscada.Propuestas.PropuestasValoraciones.Where(y => y.IdUsuario == idUsuario && y.IdPropuesta == idPropuesta).Any();

            if (!usuarioYaValoro)
            {
                propuestasValoraciones.Valoracion = true;
                ctx.PropuestasValoraciones.Add(propuestasValoraciones);
            }
            int        totalValoracionesPorPropuesta = propuestasValoracionesBuscada.Propuestas.PropuestasValoraciones.Where(y => y.IdPropuesta == idPropuesta).Count();
            int        valoracionesBuenas            = propuestasValoracionesBuscada.Propuestas.PropuestasValoraciones.Where(y => y.IdPropuesta == idPropuesta && y.Valoracion == true).Count();
            Propuestas propuestaAValorar             = ctx.Propuestas.Where(x => x.IdPropuesta == idPropuesta).FirstOrDefault();

            valoracionesBuenas = valoracion ? (valoracionesBuenas + 1) : (valoracionesBuenas - 1);
            decimal porcentajeValoracion = ((decimal)valoracionesBuenas / (decimal)totalValoracionesPorPropuesta) * 100;

            propuestaAValorar.Valoracion = decimal.Round(porcentajeValoracion);
            ctx.SaveChanges();
        }