public int EliminarValoracion(int pe_emisor, int pe_receptor) { /*****Códigos de error******/ /* ret = -1 --> todo ok * ret = 0 --> no existe la valoración * ret = 1 --> emisor o receptor null * /***************************/ float w_val_media; try { SessionInitializeTransaction(); ValoracionCAD valCAD = new ValoracionCAD(session); ValoracionCEN valCEN = new ValoracionCEN(valCAD); UsuarioCAD usuCAD = new UsuarioCAD(session); UsuarioCEN usuCEN = new UsuarioCEN(usuCAD); UsuarioEN w_emisor = usuCEN.DameUsuarioPorOID(pe_emisor); UsuarioEN w_receptor = usuCEN.DameUsuarioPorOID(pe_receptor); if (w_receptor != null && w_emisor != null) { ValoracionEN w_valoracion = valCEN.ObtenerValoracionDeA(pe_emisor, pe_receptor); if (w_valoracion == null) { return(0); } else { valCEN.BorrarValoracion(w_valoracion.Id); //Recalculo la valoración media IList <ValoracionEN> l_val_rec_rece = valCEN.ObtenerValoracionesReceptorNP(pe_receptor); if (l_val_rec_rece.Count > 0) { w_val_media = l_val_rec_rece.Sum(va => va.Valoracion) / l_val_rec_rece.Count; } else { w_val_media = 0f; } w_receptor.ValoracionMedia = w_val_media; } } else { return(1); } SessionCommit(); return(-1); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } }