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); }
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); }
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(); }