/// <summary> /// Gets a list of message tracking logs between a time period for sent messages /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> public List <Models.MessageTrackingLog> Get_TotalSentMessages(DateTime start, DateTime end) { List <Models.MessageTrackingLog> totalSentMessages = new List <Models.MessageTrackingLog>(); PSCommand cmd = new PSCommand(); if (Config.ServiceSettings.ExchangeVersion >= 2013) { cmd.AddCommand("Get-TransportService"); } else { cmd.AddCommand("Get-TransportServer"); } cmd.AddCommand("Get-MessageTrackingLog"); cmd.AddParameter("EventId", "RECEIVE"); cmd.AddParameter("Start", start.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("End", end.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("ResultSize", "Unlimited"); cmd.AddParameter("DomainController", Config.ServiceSettings.PrimaryDC); _powershell.Commands = cmd; Collection <PSObject> psObjects = _powershell.Invoke(); if (_powershell.HadErrors) { throw _powershell.Streams.Error[0].Exception; } else { foreach (PSObject ps in psObjects) { Models.MessageTrackingLog newLog = new Models.MessageTrackingLog(); newLog.Timestamp = DateTime.Parse(ps.Members["Timestamp"].Value.ToString()); newLog.ServerHostname = ps.Members["ServerHostname"].Value.ToString(); newLog.Source = ps.Members["Source"].Value.ToString(); newLog.EventId = ps.Members["EventId"].Value.ToString(); newLog.TotalBytes = long.Parse(ps.Members["TotalBytes"].Value.ToString()); newLog.Users = new List <string>(); newLog.Users.Add(ps.Members["Sender"].Value.ToString()); if (newLog.Source.Equals("STOREDRIVER")) { totalSentMessages.Add(newLog); } } } return(totalSentMessages); }
/// <summary> /// Gets a list of message tracking logs between a time period for received messages /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> public List <Models.MessageTrackingLog> Get_TotalReceivedMessages(DateTime start, DateTime end) { List <Models.MessageTrackingLog> totalReceivedMessages = new List <Models.MessageTrackingLog>(); PSCommand cmd = new PSCommand(); if (Config.ServiceSettings.ExchangeVersion >= 2013) { cmd.AddCommand("Get-TransportService"); } else { cmd.AddCommand("Get-TransportServer"); } cmd.AddCommand("Get-MessageTrackingLog"); cmd.AddParameter("EventId", "DELIVER"); cmd.AddParameter("Start", start.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("End", end.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("ResultSize", "Unlimited"); cmd.AddParameter("DomainController", Config.ServiceSettings.PrimaryDC); _powershell.Commands = cmd; Collection <PSObject> psObjects = _powershell.Invoke(); if (_powershell.HadErrors) { throw _powershell.Streams.Error[0].Exception; } else { foreach (PSObject ps in psObjects) { Models.MessageTrackingLog newLog = new Models.MessageTrackingLog(); newLog.Timestamp = DateTime.Parse(ps.Members["Timestamp"].Value.ToString()); newLog.ServerHostname = ps.Members["ServerHostname"].Value.ToString(); newLog.Source = ps.Members["Source"].Value.ToString(); newLog.EventId = ps.Members["EventId"].Value.ToString(); newLog.TotalBytes = long.Parse(ps.Members["TotalBytes"].Value.ToString()); var multiValue = ps.Members["Recipients"].Value as PSObject; var users = multiValue.BaseObject as ArrayList; var array = users.ToArray(typeof(string)) as string[]; newLog.Users = array.ToList(); totalReceivedMessages.Add(newLog); } } return(totalReceivedMessages); }
/// <summary> /// Gets a list of message tracking logs between a time period for received messages /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> public List<Models.MessageTrackingLog> Get_TotalReceivedMessages(DateTime start, DateTime end) { List<Models.MessageTrackingLog> totalReceivedMessages = new List<Models.MessageTrackingLog>(); PSCommand cmd = new PSCommand(); if (Config.ServiceSettings.ExchangeVersion >= 2013) cmd.AddCommand("Get-TransportService"); else cmd.AddCommand("Get-TransportServer"); cmd.AddCommand("Get-MessageTrackingLog"); cmd.AddParameter("EventId", "DELIVER"); cmd.AddParameter("Start", start.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("End", end.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("ResultSize", "Unlimited"); cmd.AddParameter("DomainController", Config.ServiceSettings.PrimaryDC); _powershell.Commands = cmd; Collection<PSObject> psObjects = _powershell.Invoke(); if (_powershell.HadErrors) throw _powershell.Streams.Error[0].Exception; else { foreach (PSObject ps in psObjects) { Models.MessageTrackingLog newLog = new Models.MessageTrackingLog(); newLog.Timestamp = DateTime.Parse(ps.Members["Timestamp"].Value.ToString()); newLog.ServerHostname = ps.Members["ServerHostname"].Value.ToString(); newLog.Source = ps.Members["Source"].Value.ToString(); newLog.EventId = ps.Members["EventId"].Value.ToString(); newLog.TotalBytes = long.Parse(ps.Members["TotalBytes"].Value.ToString()); var multiValue = ps.Members["Recipients"].Value as PSObject; var users = multiValue.BaseObject as ArrayList; var array = users.ToArray(typeof(string)) as string[]; newLog.Users = array.ToList(); totalReceivedMessages.Add(newLog); } } return totalReceivedMessages; }
/// <summary> /// Gets a list of message tracking logs between a time period for sent messages /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <returns></returns> public List<Models.MessageTrackingLog> Get_TotalSentMessages(DateTime start, DateTime end) { List<Models.MessageTrackingLog> totalSentMessages = new List<Models.MessageTrackingLog>(); PSCommand cmd = new PSCommand(); if (Config.ServiceSettings.ExchangeVersion >= 2013) cmd.AddCommand("Get-TransportService"); else cmd.AddCommand("Get-TransportServer"); cmd.AddCommand("Get-MessageTrackingLog"); cmd.AddParameter("EventId", "RECEIVE"); cmd.AddParameter("Start", start.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("End", end.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)); cmd.AddParameter("ResultSize", "Unlimited"); cmd.AddParameter("DomainController", Config.ServiceSettings.PrimaryDC); _powershell.Commands = cmd; Collection<PSObject> psObjects = _powershell.Invoke(); if (_powershell.HadErrors) throw _powershell.Streams.Error[0].Exception; else { foreach (PSObject ps in psObjects) { Models.MessageTrackingLog newLog = new Models.MessageTrackingLog(); newLog.Timestamp = DateTime.Parse(ps.Members["Timestamp"].Value.ToString()); newLog.ServerHostname = ps.Members["ServerHostname"].Value.ToString(); newLog.Source = ps.Members["Source"].Value.ToString(); newLog.EventId = ps.Members["EventId"].Value.ToString(); newLog.TotalBytes = long.Parse(ps.Members["TotalBytes"].Value.ToString()); newLog.Users = new List<string>(); newLog.Users.Add(ps.Members["Sender"].Value.ToString()); if (newLog.Source.Equals("STOREDRIVER")) totalSentMessages.Add(newLog); } } return totalSentMessages; }