/// <summary> /// Gets a single Virtual MTA Group. /// </summary> /// <param name="id">ID of the Virtual MTA Group to get.</param> /// <returns>The Virtual MTA Group or NULL if none exist with ID</returns> public static VirtualMtaGroup GetVirtualMtaGroup(int id) { VirtualMtaGroup grp = VirtualMtaGroupDB.GetVirtualMtaGroup(id); grp.VirtualMtaCollection = VirtualMtaDB.GetVirtualMtasInVirtualMtaGroup(grp.ID); return(grp); }
// // GET: /VirtualMta/Edit public ActionResult Edit(int id = WebInterfaceParameters.VIRTUALMTA_NEW_ID) { if (id == WebInterfaceParameters.VIRTUALMTA_NEW_ID) { return(View(new VirtualMTA())); } return(View(VirtualMtaDB.GetVirtualMta(id))); }
/// <summary> /// Get a collection of all of the Virtual MTA Groups. /// </summary> /// <returns></returns> public static IList <VirtualMtaGroup> GetAllVirtualMtaGroups() { IList <VirtualMtaGroup> ipGroups = VirtualMtaGroupDB.GetVirtualMtaGroups(); // Get all the groups Virtual MTAs. foreach (VirtualMtaGroup grp in ipGroups) { grp.VirtualMtaCollection = VirtualMtaDB.GetVirtualMtasInVirtualMtaGroup(grp.ID); } return(ipGroups); }
/// <summary> /// Method will load IP addresses from the database if required. /// This method should be called before doing anything with the /// private IP collections. /// </summary> private static void LoadVirtualMtas() { if (_vmtaCollection != null && _lastGotVirtualMtas.AddMinutes(MtaParameters.MTA_CACHE_MINUTES) > DateTime.UtcNow) { return; } _outboundMtas = null; _inboundMtas = null; _vmtaCollection = VirtualMtaDB.GetVirtualMtas(); }
/// <summary> /// Gets the specfied MTA IP Group /// </summary> /// <param name="id">ID of the group to get.</param> /// <returns>The IP Group or NULL if doesn't exist.</returns> public static VirtualMtaGroup GetVirtualMtaGroup(int id) { VirtualMtaGroup group = null; // Try and get IPGroup from the in memory collection. if (_vmtaGroups.TryGetValue(id, out group)) { // Only cache IP Groups for N minutes. if (group.CreatedTimestamp.AddMinutes(MtaParameters.MTA_CACHE_MINUTES) > DateTime.UtcNow) { return(group); } } // We need to goto the database to get the group. Lock! lock (_MtaVirtualMtaGroupSyncLock) { // Check that something else didn't already load from the database. // If it did then we can just return that. _vmtaGroups.TryGetValue(id, out group); if (group != null && group.CreatedTimestamp.AddMinutes(MtaParameters.MTA_CACHE_MINUTES) > DateTime.UtcNow) { return(group); } // Get group from the database. group = VirtualMtaGroupDB.GetVirtualMtaGroup(id); // Group doesn't exist, so don't try and get it's IPs if (group == null) { return(null); } // Got the group, go get it's IPs. group.VirtualMtaCollection = VirtualMtaDB.GetVirtualMtasInVirtualMtaGroup(id); // Add the group to collection, so others can use it. _vmtaGroups.AddOrUpdate(id, group, new Func <int, VirtualMtaGroup, VirtualMtaGroup>(delegate(int key, VirtualMtaGroup existing) { return(group); })); return(group); } }
// // GET: /VirtualMta/ public ActionResult Index() { var ips = VirtualMtaDB.GetVirtualMtas(); var summary = new List <VirtualMTASummary>(); var ipGroups = VirtualMtaWebManager.GetAllVirtualMtaGroups(); foreach (var address in ips) { summary.Add(new VirtualMTASummary { IpAddress = address, SendTransactionSummaryCollection = OpenManta.WebLib.DAL.VirtualMtaTransactionDB.GetSendSummaryForIpAddress(address.ID) }); } return(View(new VirtualMtaPageModel { VirtualMTASummaryCollection = summary.ToArray(), IpGroups = ipGroups })); }
// // GET: /VirtualMta/EditGroup public ActionResult EditGroup(int id = WebInterfaceParameters.VIRTUALMTAGROUP_NEW_ID) { VirtualMtaGroup grp = null; if (id == WebInterfaceParameters.VIRTUALMTAGROUP_NEW_ID) { grp = new VirtualMtaGroup(); } else { grp = VirtualMtaWebManager.GetVirtualMtaGroup(id); } return(View(new VirtualMtaGroupCreateEditModel { VirtualMtaGroup = grp, VirtualMTACollection = VirtualMtaDB.GetVirtualMtas() })); }
public bool Save(SaveVirtualMtaViewModel viewModel) { VirtualMTA vMTA = null; if (viewModel.Id != WebInterfaceParameters.VIRTUALMTA_NEW_ID) { vMTA = VirtualMtaDB.GetVirtualMta(viewModel.Id); } else { vMTA = new VirtualMTA(); } if (vMTA == null) { return(false); } if (string.IsNullOrWhiteSpace(viewModel.HostName)) { return(false); } IPAddress ip = null; try { ip = IPAddress.Parse(viewModel.IpAddress); } catch (Exception) { return(false); } vMTA.Hostname = viewModel.HostName; vMTA.IPAddress = ip; vMTA.IsSmtpInbound = viewModel.Inbound; vMTA.IsSmtpOutbound = viewModel.Outbound; OpenManta.WebLib.DAL.VirtualMtaDB.Save(vMTA); return(true); }
public bool Save(int id, string hostname, string ipAddress, bool inbound, bool outbound) { VirtualMTA vMTA = null; if (id != WebInterfaceParameters.VIRTUALMTA_NEW_ID) { vMTA = MantaMTA.Core.DAL.VirtualMtaDB.GetVirtualMta(id); } else { vMTA = new VirtualMTA(); } if (vMTA == null) { return(false); } if (string.IsNullOrWhiteSpace(hostname)) { return(false); } IPAddress ip = null; try { ip = IPAddress.Parse(ipAddress); } catch (Exception) { return(false); } vMTA.Hostname = hostname; vMTA.IPAddress = ip; vMTA.IsSmtpInbound = inbound; vMTA.IsSmtpOutbound = outbound; VirtualMtaDB.Save(vMTA); return(true); }
// // GET: /OutboundRules/Edit?id= public ActionResult Edit(int id = WebInterfaceParameters.OUTBOUND_RULES_NEW_PATTERN_ID) { OutboundMxPattern pattern = null; IList <OutboundRule> rules = null; if (id != WebInterfaceParameters.OUTBOUND_RULES_NEW_PATTERN_ID) { pattern = OutboundRuleDB.GetOutboundRulePatterns().Single(p => p.ID == id); rules = OutboundRuleDB.GetOutboundRules().Where(r => r.OutboundMxPatternID == id).ToList(); } else { pattern = new OutboundMxPattern(); rules = OutboundRuleDB.GetOutboundRules().Where(r => r.OutboundMxPatternID == MtaParameters.OUTBOUND_RULES_DEFAULT_PATTERN_ID).ToList(); } IList <VirtualMTA> vMtas = VirtualMtaDB.GetVirtualMtas(); return(View(new OutboundRuleModel(rules, pattern, vMtas))); }
public bool SaveGroup(SaveVirtualMtaGroupViewModel viewModel) { VirtualMtaGroup grp = null; if (viewModel.Id == WebInterfaceParameters.VIRTUALMTAGROUP_NEW_ID) { grp = new VirtualMtaGroup(); } else { grp = VirtualMtaGroupDB.GetVirtualMtaGroup(viewModel.Id); } if (grp == null) { return(false); } grp.Name = viewModel.Name; grp.Description = viewModel.Description; var vMtas = VirtualMtaDB.GetVirtualMtas(); for (int i = 0; i < viewModel.MtaIDs.Length; i++) { VirtualMTA mta = vMtas.SingleOrDefault(m => m.ID == viewModel.MtaIDs[i]); if (mta == null) { return(false); } grp.VirtualMtaCollection.Add(mta); } VirtualMtaWebManager.Save(grp); return(true); }
public void Delete(int id) { VirtualMtaDB.Delete(id); }
// // GET: /Sends/VirtualMTA?sendID= public ActionResult VirtualMTA(string sendID) { return(View(new SendReportVirtualMta(VirtualMtaDB.GetSendVirtualMTAStats(sendID), sendID))); }