public MeetingParticipant GetOrganizer(string strMeetingID) { // Quick error checks if (strMeetingID == null || strMeetingID.Length == 0) { throw new ArgumentException("Invalid meeting ID", "strMeetingID"); } MeetingParticipant organizer = null; OdbcDataReader dr = null; try { StringBuilder strQueryBuilder = new StringBuilder(); strQueryBuilder.Append(" SELECT "); strQueryBuilder.Append(Constants.CONTACT_ID); strQueryBuilder.Append(","); strQueryBuilder.Append(Constants.PART_ROLE); strQueryBuilder.Append(","); strQueryBuilder.Append(Constants.PART_LOC); strQueryBuilder.Append(" FROM "); strQueryBuilder.Append(Constants.PARTICIPANTS_TABLENAME); strQueryBuilder.Append(" WHERE "); strQueryBuilder.Append(Constants.MTG_ID); strQueryBuilder.Append("="); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(strMeetingID) + "'"); strQueryBuilder.Append(" AND "); strQueryBuilder.Append(Constants.PART_ROLE); strQueryBuilder.Append("="); strQueryBuilder.Append("'" + enuMeetingParticipantRole.Organizer.ToString() + "'"); dr = QueryService.ExecuteReader(this.DBConnect, strQueryBuilder.ToString()); if (dr == null) { throw new Exception("Null data reader returned from query"); } // Take first entry returned if (dr.Read()) { organizer = new MeetingParticipant(); organizer.Location = (string)dr[Constants.PART_LOC]; organizer.Name = (string)dr[Constants.CONTACT_ID]; organizer.Role = (enuMeetingParticipantRole)enuMeetingParticipantRole.Parse(typeof(enuMeetingParticipantRole), (string)dr[Constants.PART_ROLE], true); } } catch (Exception /*e*/) { } finally { if (dr != null) { dr.Close(); } } return(organizer); }
public ArrayList GetParticipants(string strMeetingID) { // Quick error checks if (strMeetingID == null || strMeetingID.Length == 0) { throw new ArgumentException("Invalid meeting ID", "strMeetingID"); } ArrayList lstParticipants = new ArrayList(); OdbcDataReader dr = null; try { StringBuilder strQueryBuilder = new StringBuilder(); strQueryBuilder.Append(" SELECT "); strQueryBuilder.Append(Constants.CONTACT_ID); strQueryBuilder.Append(","); strQueryBuilder.Append(Constants.PART_ROLE); strQueryBuilder.Append(","); strQueryBuilder.Append(Constants.PART_LOC); strQueryBuilder.Append(" FROM "); strQueryBuilder.Append(Constants.PARTICIPANTS_TABLENAME); strQueryBuilder.Append(" WHERE "); strQueryBuilder.Append(Constants.MTG_ID); strQueryBuilder.Append("="); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(strMeetingID) + "'"); dr = QueryService.ExecuteReader(this.DBConnect, strQueryBuilder.ToString()); if (dr == null) { throw new Exception("Null data reader returned from query"); } // Scroll thru list returned while (dr.Read()) { MeetingParticipant participant = new MeetingParticipant(); participant.Location = (string)dr[Constants.PART_LOC]; participant.Name = (string)dr[Constants.CONTACT_ID]; participant.Role = (enuMeetingParticipantRole)enuMeetingParticipantRole.Parse(typeof(enuMeetingParticipantRole), (string)dr[Constants.PART_ROLE], true); // Add participant to list lstParticipants.Add(participant); } } catch (Exception /*e*/) { } finally { if (dr != null) { dr.Close(); } } return(lstParticipants); }
public bool LeaveMeeting(string strMeetingID, MeetingParticipant participant) { // Quick error checks if (strMeetingID == null || strMeetingID.Length == 0) { throw new ArgumentException("Invalid meeting ID", "strMeetingID"); } if (participant == null) { throw new ArgumentNullException("participant", "Invalid Meeting Participant"); } // The Organizer CANNOT leave the meeting MeetingParticipant organizer = GetOrganizer(strMeetingID); if (organizer != null) { if (organizer.Name == participant.Name) { throw new InvalidOperationException("The Meeting Organizer CANNOT leave the meeting"); } } bool bRetVal = false; try { StringBuilder strQueryBuilder = new StringBuilder(); strQueryBuilder.Append(" UPDATE "); strQueryBuilder.Append(Constants.PARTICIPANTS_TABLENAME); strQueryBuilder.Append(" SET "); strQueryBuilder.Append(Constants.PART_ROLE); strQueryBuilder.Append("="); strQueryBuilder.Append("'" + enuMeetingParticipantRole.Inactive.ToString() + "'"); strQueryBuilder.Append(" WHERE "); strQueryBuilder.Append(Constants.CONTACT_ID); strQueryBuilder.Append("="); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(participant.Name) + "'"); int nRowsAffected = QueryService.ExecuteNonQuery(this.DBConnect, strQueryBuilder.ToString()); if (nRowsAffected == 1) { bRetVal = true; } } catch (Exception /*e*/) { } finally { } return(bRetVal); }
public bool AddMeetingParticipant(string strMeetingID, MeetingParticipant participant) { // Quick error checks if (strMeetingID == null || strMeetingID.Length == 0) { throw new ArgumentException("Invalid meeting ID", "strMeetingID"); } // Prevent attempt to add a participant multiple times to a meeting if (IsInMeeting(strMeetingID, participant)) { return(true); } // Only one Meeting Organizer per meeting if (participant.Role == enuMeetingParticipantRole.Organizer && GetOrganizer(strMeetingID) != null) { throw new InvalidOperationException("Only one Meeting Organizer per meeting"); } bool bRetVal = false; try { StringBuilder strQueryBuilder = new StringBuilder(); strQueryBuilder.Append(" INSERT INTO "); strQueryBuilder.Append(Constants.PARTICIPANTS_TABLENAME); strQueryBuilder.Append("("); strQueryBuilder.Append(Constants.MTG_ID); strQueryBuilder.Append(","); strQueryBuilder.Append(Constants.CONTACT_ID); strQueryBuilder.Append(","); strQueryBuilder.Append(Constants.PART_ROLE); strQueryBuilder.Append(","); strQueryBuilder.Append(Constants.PART_LOC); strQueryBuilder.Append(")"); strQueryBuilder.Append(" VALUES "); strQueryBuilder.Append("("); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(strMeetingID) + "'"); strQueryBuilder.Append(","); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(participant.Name) + "'"); strQueryBuilder.Append(","); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(participant.Role.ToString()) + "'"); strQueryBuilder.Append(","); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(participant.Location) + "'"); strQueryBuilder.Append(")"); int nRowsAffected = QueryService.ExecuteNonQuery(this.DBConnect, strQueryBuilder.ToString()); if (nRowsAffected == 1) { bRetVal = true; } } catch (Exception /*e*/) { } finally { } return(bRetVal); }
public bool IsInMeeting(string strMeetingID, MeetingParticipant participant) { // Quick error checks if (strMeetingID == null || strMeetingID.Length == 0) { throw new ArgumentException("Invalid meeting ID", "strMeetingID"); } if (participant == null) { throw new ArgumentNullException("participant", "Invalid Meeting Participant"); } bool bRetVal = false; OdbcDataReader dr = null; try { StringBuilder strQueryBuilder = new StringBuilder(); strQueryBuilder.Append(" SELECT COUNT(*) "); strQueryBuilder.Append(" FROM "); strQueryBuilder.Append(Constants.PARTICIPANTS_TABLENAME); strQueryBuilder.Append(" WHERE "); strQueryBuilder.Append(Constants.MTG_ID); strQueryBuilder.Append("="); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(strMeetingID) + "'"); strQueryBuilder.Append(" AND "); strQueryBuilder.Append(Constants.CONTACT_ID); strQueryBuilder.Append("="); strQueryBuilder.Append("'" + QueryService.MakeQuotesafe(participant.Name) + "'"); dr = QueryService.ExecuteReader(this.DBConnect, strQueryBuilder.ToString()); if (dr == null) { throw new Exception("Null data reader returned from query"); } // Advance data reader to first record if (dr.Read()) { int nCount = -1; if (!dr.IsDBNull(0)) { nCount = dr.GetInt32(0); } if (nCount != 0) { bRetVal = true; } } } catch (Exception /*e*/) { } finally { if (dr != null) { dr.Close(); } } return(bRetVal); }