/// <summary> /// Gets all of the Virtual MTA Groups from the database; doesn't include Virtual MTA objects. /// </summary> /// <returns></returns> internal static VirtualMta.VirtualMtaGroupCollection GetVirtualMtaGroups() { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @" SELECT * FROM man_ip_group"; return(new VirtualMta.VirtualMtaGroupCollection(DataRetrieval.GetCollectionFromDatabase <VirtualMta.VirtualMtaGroup>(cmd, CreateAndFillVirtualMtaGroup))); } }
/// <summary> /// Gets all of the MTA IP Addresses from the Database. /// </summary> /// <returns></returns> public static VirtualMTACollection GetVirtualMtas() { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @" SELECT * FROM man_ip_ipAddress"; return(new VirtualMTACollection(DataRetrieval.GetCollectionFromDatabase <VirtualMta.VirtualMTA>(cmd, CreateAndFillVirtualMtaFromRecord))); } }
/// <summary> /// Gets an array of the local domains from the database. /// All domains are toLowered! /// </summary> /// <returns></returns> public static LocalDomainCollection GetLocalDomainsArray() { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @" SELECT * FROM man_cfg_localDomain"; return(new LocalDomainCollection(DataRetrieval.GetCollectionFromDatabase <LocalDomain>(cmd, CreateAndFillLocalDomainFromRecord))); } }
/// <summary> /// Gets all of the MantaEvents from the database. /// </summary> /// <returns>Collection of MantaEvent objects.</returns> public static MantaEventCollection GetEvents() { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @"SELECT [evt].*, [bnc].evn_bounceCode_id, [bnc].evn_bounceEvent_message, [bnc].evn_bounceType_id FROM man_evn_event AS [evt] LEFT JOIN man_evn_bounceEvent AS [bnc] ON [evt].evn_event_id = [bnc].evn_event_id"; return(new MantaEventCollection(DataRetrieval.GetCollectionFromDatabase <MantaEvent>(cmd, CreateAndFillMantaEventFromRecord))); } }
/// <summary> /// Get the Outbound Rules from the database. /// </summary> /// <returns></returns> internal static OutboundRuleCollection GetOutboundRules() { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @" SELECT * FROM man_rle_rule"; return(new OutboundRuleCollection(DataRetrieval.GetCollectionFromDatabase <OutboundRule>(cmd, CreateAndFillOutboundRule))); } }
/// <summary> /// Gets a collection of the Virtual MTAs that belong to a Virtual MTA Group from the database. /// </summary> /// <param name="groupID">ID of the Virtual MTA Group to get Virtual MTAs for.</param> /// <returns></returns> internal static VirtualMta.VirtualMTACollection GetVirtualMtasInVirtualMtaGroup(int groupID) { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @"SELECT * FROM man_ip_ipAddress as [ip] WHERE [ip].ip_ipAddress_id IN (SELECT [grp].ip_ipAddress_id FROM man_ip_groupMembership as [grp] WHERE [grp].ip_group_id = @groupID) "; cmd.Parameters.AddWithValue("@groupID", groupID); return(new VirtualMTACollection(DataRetrieval.GetCollectionFromDatabase <VirtualMta.VirtualMTA>(cmd, CreateAndFillVirtualMtaFromRecord))); } }
/// <summary> /// Get the Outbound MX Patterns from the database. /// </summary> /// <returns></returns> internal static OutboundMxPatternCollection GetOutboundRulePatterns() { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @" SELECT * FROM man_rle_mxPattern ORDER BY rle_mxPattern_id DESC"; // Order descending so default -1 is always at the bottom! return(new OutboundMxPatternCollection(DataRetrieval.GetCollectionFromDatabase <OutboundMxPattern>(cmd, CreateAndFillOutboundMxPattern))); } }
/// <summary> /// Gets <param name="maxEventsToGet"/> amount of Events that need forwarding from the database. /// </summary> public static MantaEventCollection GetEventsForForwarding(int maxEventsToGet) { using (SqlConnection conn = MantaDB.GetSqlConnection()) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @" SELECT TOP " + maxEventsToGet + @" [evt].*, [bnc].evn_bounceCode_id, [bnc].evn_bounceEvent_message, [bnc].evn_bounceType_id FROM man_evn_event AS [evt] LEFT JOIN man_evn_bounceEvent AS [bnc] ON [evt].evn_event_id = [bnc].evn_event_id WHERE evn_event_forwarded = 0 ORDER BY evn_event_id ASC"; return(new MantaEventCollection(DataRetrieval.GetCollectionFromDatabase <MantaEvent>(cmd, CreateAndFillMantaEventFromRecord))); } }