Added Method "GetServiceItemsBandwidth" to obtain a real time summary of BytesSent and BytesReceived from a Array of MailAccount
This commit is contained in:
parent
c83fa3ecda
commit
acb6af5778
1 changed files with 211 additions and 143 deletions
|
@ -189,7 +189,7 @@ Public Class Merak
|
||||||
domainItem.AbuseAccount = ""
|
domainItem.AbuseAccount = ""
|
||||||
|
|
||||||
domainItem.Enabled = CInt(domainObjectClass.GetProperty("D_DisableLogin")) = 0
|
domainItem.Enabled = CInt(domainObjectClass.GetProperty("D_DisableLogin")) = 0
|
||||||
domainItem.MaxMailboxSizeInMB = CStr(domainObjectClass.GetProperty("D_UserMailbox"))
|
domainItem.MaxMailboxSizeInMB = CInt(domainObjectClass.GetProperty("D_UserMailbox"))
|
||||||
|
|
||||||
'Dim abuseEmail As String = "abuse@" + domainName
|
'Dim abuseEmail As String = "abuse@" + domainName
|
||||||
|
|
||||||
|
@ -1239,6 +1239,76 @@ ContinueFor1:
|
||||||
Next
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Public Overrides Function GetServiceItemsBandwidth(items() As ServiceProviderItem, since As Date) As ServiceProviderItemBandwidth()
|
||||||
|
Dim itemsBandwidth As List(Of ServiceProviderItemBandwidth) = New List(Of ServiceProviderItemBandwidth)
|
||||||
|
Dim item As ServiceProviderItem
|
||||||
|
|
||||||
|
For Each item In items
|
||||||
|
If TypeOf item Is MailAccount Then
|
||||||
|
Dim name As String = item.Name
|
||||||
|
|
||||||
|
Dim bandwidth As New ServiceProviderItemBandwidth()
|
||||||
|
|
||||||
|
bandwidth.ItemId = item.Id
|
||||||
|
bandwidth.Days = GetDailyStatistics(since, name)
|
||||||
|
|
||||||
|
itemsBandwidth.Add(bandwidth)
|
||||||
|
|
||||||
|
End If
|
||||||
|
Next item
|
||||||
|
Return itemsBandwidth.ToArray()
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GetDailyStatistics(since As Date, mailAccount As String) As DailyStatistics()
|
||||||
|
Dim days As List(Of DailyStatistics) = New List(Of DailyStatistics)
|
||||||
|
|
||||||
|
|
||||||
|
Dim currentDate As DateTime = since
|
||||||
|
Dim now As DateTime = DateTime.Now
|
||||||
|
|
||||||
|
|
||||||
|
While currentDate < now
|
||||||
|
days.Add(GetSingleDayBandwidthStatistics(currentDate, mailAccount))
|
||||||
|
|
||||||
|
' advance day
|
||||||
|
currentDate = currentDate.AddDays(1)
|
||||||
|
End While
|
||||||
|
|
||||||
|
|
||||||
|
Return days.ToArray()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Function GetSingleDayBandwidthStatistics(day As Date, mailAccount As String) As DailyStatistics
|
||||||
|
Const ReceivedAmmountPositionInString As Int32 = 18
|
||||||
|
Const SentOutAmmountPositionInString As Int32 = 22
|
||||||
|
|
||||||
|
Dim apiObject = CreateObject(API_PROGID)
|
||||||
|
Dim result As New DailyStatistics()
|
||||||
|
Dim formatedDate As String
|
||||||
|
formatedDate = Format(day, "yyyy/MM/dd")
|
||||||
|
|
||||||
|
result.Day = day.Day
|
||||||
|
result.Month = day.Month
|
||||||
|
result.Year = day.Year
|
||||||
|
result.BytesReceived = 0
|
||||||
|
result.BytesSent = 0
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim apiResult As String = apiObject.GetUserStatistics(formatedDate, formatedDate, mailAccount)
|
||||||
|
|
||||||
|
Dim apiResultSplit As String() = apiResult.Split(",")
|
||||||
|
|
||||||
|
result.BytesReceived = apiResultSplit(ReceivedAmmountPositionInString)
|
||||||
|
result.BytesSent = apiResultSplit(SentOutAmmountPositionInString)
|
||||||
|
Catch ex As Exception
|
||||||
|
Log.WriteError(String.Format("Merak: Error calculating '{0}' bandwidth at {1}", mailAccount, day.ToShortDateString()), ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Overrides Function GetServiceItemsDiskSpace(ByVal items() As ServiceProviderItem) As ServiceProviderItemDiskSpace()
|
Public Overrides Function GetServiceItemsDiskSpace(ByVal items() As ServiceProviderItem) As ServiceProviderItemDiskSpace()
|
||||||
Dim itemsDiskspace As List(Of ServiceProviderItemDiskSpace) = New List(Of ServiceProviderItemDiskSpace)
|
Dim itemsDiskspace As List(Of ServiceProviderItemDiskSpace) = New List(Of ServiceProviderItemDiskSpace)
|
||||||
Dim item As ServiceProviderItem
|
Dim item As ServiceProviderItem
|
||||||
|
@ -1302,8 +1372,6 @@ ContinueFor1:
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'/ Provides constant values for easier interoperability with Merak COM library
|
'/ Provides constant values for easier interoperability with Merak COM library
|
||||||
'/ </summary>
|
'/ </summary>
|
||||||
Private Class MerakInterop
|
Private Class MerakInterop
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue