protected void radioButtonListAvaliacao_SelectedIndexChanged(object sender, EventArgs e) { Avaliacao avaliacao = new Avaliacao(); avaliacao.IdProposta = proposta.IdProposta; if (meuPapel == Usuario.EnumQuem.PEDINTE) { avaliacao.QuemEhAvaliado = Usuario.EnumQuem.PROPONENTE; } else { avaliacao.QuemEhAvaliado = Usuario.EnumQuem.PEDINTE; } avaliacao.NumeroExtrelas = System.Convert.ToInt16(((RadioButtonList)sender).SelectedValue); Avaliacao.ResultadoAvaliacao resultado = DataAccess.avaliarProposta(avaliacao); }
}//populateProposta() private static Avaliacao populateAvaliacao(SqlDataReader dr) { Avaliacao avaliacaoReturn = new Avaliacao(); avaliacaoReturn.IdProposta = System.Convert.ToInt64(dr["id_proposta"]); avaliacaoReturn.NumeroExtrelas = System.Convert.ToInt16(dr["num_estrelas"]); short sTemp = System.Convert.ToInt16(dr["quem_eh_avaliado"]); if (sTemp == (short)Usuario.EnumQuem.PEDINTE) { avaliacaoReturn.QuemEhAvaliado = Usuario.EnumQuem.PEDINTE; } else { avaliacaoReturn.QuemEhAvaliado = Usuario.EnumQuem.PROPONENTE; } avaliacaoReturn.TextoAvaliacao = System.Convert.ToString(dr["texto_avaliacao"]); return avaliacaoReturn; }//populateAvaliacao()
}//queryProposta() public static ArrayList queryAvaliacao(Avaliacao avaliacaoQuery) { ArrayList alReturn = null; SqlDataReader dr = null; SqlConnection conn = null; SqlCommand cmd = null; bool bWhere = false; String strSql = "SELECT * from Avaliacao"; if (avaliacaoQuery.IdProposta > 0) { if (bWhere) { strSql += " AND "; } else { strSql += " WHERE "; bWhere = true; } strSql += "id_proposta = " + avaliacaoQuery.IdProposta.ToString(); } if (avaliacaoQuery.QuemEhAvaliado != Usuario.EnumQuem.INDEFINIDO) { if (bWhere) { strSql += " AND "; } else { strSql += " WHERE "; bWhere = true; } strSql += "quem_eh_avaliado = " + ((int)avaliacaoQuery.QuemEhAvaliado).ToString(); } //o mínimo de estrelas que se pode dar é 1 estrela: if (avaliacaoQuery.NumeroExtrelas > 0) { if (bWhere) { strSql += " AND "; } else { strSql += " WHERE "; bWhere = true; } strSql += "num_estrelas = " + avaliacaoQuery.NumeroExtrelas.ToString(); } try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; dr = cmd.ExecuteReader(); alReturn = new ArrayList(); while (dr.Read()) { alReturn.Add(populateAvaliacao(dr)); }//while return alReturn; } catch { return new ArrayList(); } finally { if (dr != null) { dr.Close(); } if (conn != null) { conn.Close(); } } }//queryAvaliacao()
}//salvarProposta() public static Avaliacao.ResultadoAvaliacao avaliarProposta(Avaliacao avaliacao) { SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; SqlDataReader dr = null; String strSql; try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; trans = conn.BeginTransaction(); cmd.Transaction = trans; strSql = "SELECT P.is_deleted_proposta, D.id_proposta_aceita, D.is_deleted_desejo FROM"; strSql += " Proposta P"; strSql += " INNER JOIN Desejo D ON P.id_desejo = D.id_desejo"; strSql += " where P.id_proposta = " + avaliacao.IdProposta.ToString(); cmd.CommandText = strSql; dr = cmd.ExecuteReader(); if (!dr.Read()) { //a proposta ou o desejo foram deletados fisicamente dr.Close(); trans.Rollback(); return Avaliacao.ResultadoAvaliacao.PROPOSTA_OU_DESEJO_DELETADO; } long lngTemp = System.Convert.ToInt32(dr["is_deleted_proposta"]); if (lngTemp == 1) { dr.Close(); trans.Rollback(); return Avaliacao.ResultadoAvaliacao.PROPOSTA_DELETADA; } lngTemp = System.Convert.ToInt32(dr["is_deleted_desejo"]); if (lngTemp == 1) { dr.Close(); trans.Rollback(); return Avaliacao.ResultadoAvaliacao.DESEJO_DELETADO; } if (dr.IsDBNull(dr.GetOrdinal("id_proposta_aceita"))) { dr.Close(); trans.Rollback(); return Avaliacao.ResultadoAvaliacao.PROPOSTA_NAO_SELECIONADA; } lngTemp = System.Convert.ToInt32(dr["id_proposta_aceita"]); if (lngTemp != avaliacao.IdProposta) { dr.Close(); trans.Rollback(); return Avaliacao.ResultadoAvaliacao.PROPOSTA_NAO_SELECIONADA; } dr.Close(); strSql = "SELECT * from Avaliacao where id_proposta = " + avaliacao.IdProposta.ToString(); strSql += " AND quem_eh_avaliado = " + ((int)(avaliacao.QuemEhAvaliado)).ToString(); cmd.CommandText = strSql; dr = cmd.ExecuteReader(); if (dr.Read()) { //ja existe a avaliacao dr.Close(); trans.Rollback(); return Avaliacao.ResultadoAvaliacao.AVALIACAO_JA_FEITA; } dr.Close(); strSql = "INSERT into Avaliacao (id_proposta, quem_eh_avaliado, num_estrelas, texto_avaliacao) VALUES ("; strSql += avaliacao.IdProposta.ToString() + ","; strSql += ((int)avaliacao.QuemEhAvaliado).ToString() + ","; strSql += avaliacao.NumeroExtrelas.ToString() + ",'"; strSql += Utils.limpaString(avaliacao.TextoAvaliacao) + "')"; cmd.CommandText = strSql; cmd.ExecuteNonQuery(); trans.Commit(); return Avaliacao.ResultadoAvaliacao.SUCESSO; } catch { dr.Close(); trans.Rollback(); return Avaliacao.ResultadoAvaliacao.ERRO_INDEFINIDO; } finally { if (dr != null) dr.Close(); if (conn != null) conn.Close(); } }//avaliarProposta()