public int CrearValoracion(int pe_emisor, int pe_receptor, float pe_nota, string pe_descripcion) { /*****Códigos de error******/ /* ret = -1 --> todo ok * ret = 0 --> ya existe la valoracion del emisor al receptor * ret = 1 --> emisor o receptor null * /***************************/ int ret = -1; 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) { ret = 0; } else { valCEN.CrearValoracion(pe_nota, pe_descripcion, false, pe_emisor, pe_receptor); //calculo la valoración media IList <ValoracionEN> l_val_rec_rece = valCEN.ObtenerValoracionesReceptorNP(pe_receptor); float w_val_media = l_val_rec_rece.Sum(va => va.Valoracion) / l_val_rec_rece.Count; w_receptor.ValoracionMedia = w_val_media; } } else { ret = 1; } SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } return(ret); }