Initial project's source code check-in.

This commit is contained in:
ptsurbeleu 2011-07-13 16:07:32 -07:00
commit b03b0b373f
4573 changed files with 981205 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,369 @@
' Copyright (c) 2011, Outercurve Foundation.
' All rights reserved.
'
' Redistribution and use in source and binary forms, with or without modification,
' are permitted provided that the following conditions are met:
'
' - Redistributions of source code must retain the above copyright notice, this
' list of conditions and the following disclaimer.
'
' - Redistributions in binary form must reproduce the above copyright notice,
' this list of conditions and the following disclaimer in the documentation
' and/or other materials provided with the distribution.
'
' - Neither the name of the Outercurve Foundation nor the names of its
' contributors may be used to endorse or promote products derived from this
' software without specific prior written permission.
'
' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
' ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
' WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
' ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
' (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
' LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
' ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
' (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
' SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Imports Microsoft.Win32
Imports System.IO
Imports System.Security.AccessControl
Friend Class ArgoMailLists
Private _mailListPath As String = ""
Private mailListItems As New List(Of ArgoMailListItem)
Public Sub New()
Dim locKey As RegistryKey = Registry.LocalMachine
Dim argoKey As RegistryKey = locKey.OpenSubKey("SOFTWARE\ArGoSoft\Mail Server\Setup", False)
If Not (argoKey Is Nothing) Then
Dim argoInst As String = CStr(argoKey.GetValue("Program Path"))
If argoInst <> "" Then
_mailListPath = argoInst + "_maillists\"
ReadLists()
End If
End If
End Sub 'New
Public Sub New(ByVal loadLists As Boolean)
Dim locKey As RegistryKey = Registry.LocalMachine
Dim argoKey As RegistryKey = locKey.OpenSubKey("SOFTWARE\ArGoSoft\Mail Server\Setup", False)
If Not argoKey Is Nothing Then
Dim argoInst As String = CStr(argoKey.GetValue("Program Path"))
If Not String.IsNullOrEmpty(argoInst) Then
_mailListPath = argoInst + "_maillists\"
If loadLists Then
ReadLists()
End If
End If
End If
End Sub 'New
Public Property Items() As List(Of ArgoMailListItem)
Get
Return mailListItems
End Get
Set(ByVal value As List(Of ArgoMailListItem))
mailListItems = Value
End Set
End Property
Public Property ListPath() As String
Get
Return _mailListPath
End Get
Set(ByVal value As String)
_mailListPath = Value
End Set
End Property
Public Sub Add(ByRef item As ArgoMailListItem)
Try
Dim sFile As String = _mailListPath + item.Name
AddListItem(item, sFile)
Catch ex As Exception
Throw ex
End Try
End Sub 'Add
Public Sub Update(ByVal item As ArgoMailListItem)
Try
Dim sFile As String = _mailListPath + item.Name
AddListItem(item, sFile)
Catch ex As Exception
Throw ex
End Try
End Sub 'Update
Public Sub Delete(ByVal listName As String)
Dim sFile As String = Nothing
Dim item As ArgoMailListItem = FindItem(listName)
If Not (item Is Nothing) Then
sFile = _mailListPath + item.Name
File.Delete(sFile)
End If
End Sub 'Delete
Public Function IndexOf(ByVal listName As String) As Integer
Dim item As ArgoMailListItem = FindItem(listName)
If item Is Nothing Then
Return -1
Else
Return mailListItems.IndexOf(item)
End If
End Function 'IndexOf
Public Overloads Function GetItem(ByVal listName As String) As ArgoMailListItem
Return FindItem(listName)
End Function 'GetItem
Public Overloads Function GetItem(ByVal index As Integer) As ArgoMailListItem
If index <= mailListItems.Count Then
Return mailListItems(index)
Else
Return Nothing
End If
End Function 'GetItem
Public Function TotalDiskSpace(ByVal domainName As String) As Long
Dim lTotSpace As Long = 0
Dim alAcc As ArrayList = DomainAccounts(domainName)
Dim user As Object = ArgoMail.CreateUserObject()
For Each user In alAcc
Dim idx As Integer = user.UserName.IndexOf("@")
If idx >= 0 Then
lTotSpace += CalcDiskSpace((_mailListPath + "_users\" + domainName + "\" + user.UserName.Substring(0, idx) + "\Inbox\"))
End If
Next user
Return lTotSpace
End Function 'TotalDiskSpace
Public Function MailBoxDiskSpace(ByVal mailBox As String) As Long
Dim lTotSpace As Long = 0
Dim idx As Integer = mailBox.IndexOf("@")
If idx >= 0 Then
Dim account As String = mailBox.Substring(0, idx)
Dim domain As String = mailBox.Substring((idx + 1))
lTotSpace += CalcDiskSpace((_mailListPath + "_users\" + domain + "\" + account + "\Inbox\"))
End If
Return lTotSpace
End Function 'MailBoxDiskSpace
Private Sub ReadLists()
Dim aFiles As String() = Directory.GetFiles(_mailListPath, "*.")
Dim read As StreamReader = Nothing
Try
Dim file As String
For Each file In aFiles
Dim newlist As New ArgoMailListItem()
read = New StreamReader(file)
Dim data As String
data = read.ReadLine()
If Not (data Is Nothing) Then
newlist.ID = data
End If
data = read.ReadLine()
If Not (data Is Nothing) Then
newlist.Name = data
End If
data = read.ReadLine()
If Not (data Is Nothing) Then
newlist.Account = data
End If
data = read.ReadLine()
If Not (data Is Nothing) Then
newlist.DescriptionLines = Convert.ToInt32(data)
If newlist.DescriptionLines > 0 Then
Dim idx As Integer
For idx = 0 To newlist.DescriptionLines - 1
data = read.ReadLine()
If Not (data Is Nothing) Then
newlist.Desription = String.Concat(newlist.Desription, data)
End If
Next idx
Else
newlist.Desription = ""
End If
End If
data = read.ReadLine()
If Not (data Is Nothing) Then
newlist.Count = Convert.ToInt32(data)
newlist.Members = New String(newlist.Count) {}
If newlist.Count > 0 Then
Dim idx As Integer
For idx = 0 To newlist.Count - 1
data = read.ReadLine()
If Not (data Is Nothing) Then
newlist.Members(idx) = data
End If
Next idx
End If
End If
data = read.ReadLine()
If Not data Is Nothing Then
If data <> "0" Then
newlist.ListISClosed = True
Else
newlist.ListISClosed = False
End If
End If
data = read.ReadLine()
If Not data Is Nothing Then
If data <> "0" Then
newlist.RepliesGoToSender = True
Else
newlist.RepliesGoToSender = False
End If
End If
data = read.ReadLine()
If Not (data Is Nothing) Then
If data <> "0" Then
newlist.RequireMemberShip = True
Else
newlist.RequireMemberShip = False
End If
End If
newlist.DiskSpace = read.BaseStream.Length
mailListItems.Add(newlist)
Next file
Catch
Finally
If Not (read Is Nothing) Then
read.Close()
End If
End Try
End Sub 'ReadLists
Private Sub AddListItem(ByVal item As ArgoMailListItem, ByVal sFile As String)
Dim writer As StreamWriter = Nothing
Try
writer = New StreamWriter(sFile)
writer.WriteLine(item.ID)
writer.WriteLine(item.Name)
writer.WriteLine(item.Account)
If String.IsNullOrEmpty(item.Desription) Then
item.Desription = String.Empty
End If
Dim aDesc As String() = item.Desription.TrimEnd(ControlChars.Lf).Split(ControlChars.Lf)
item.DescriptionLines = aDesc.Length
writer.WriteLine(item.DescriptionLines.ToString())
If item.DescriptionLines > 0 Then
Dim idx As Integer
For idx = 0 To item.DescriptionLines - 1
writer.WriteLine(aDesc(idx).TrimEnd(ControlChars.Cr))
Next idx
Else
If item.Desription <> "" Then
writer.WriteLine(item.Desription)
End If
End If
writer.WriteLine(item.Count.ToString())
If item.Count > 0 Then
Dim idx As Integer
For idx = 0 To item.Count - 1
writer.WriteLine(item.Members(idx))
Next idx
End If
If item.ListISClosed Then
writer.WriteLine("1")
Else
writer.WriteLine("0")
End If
If item.RepliesGoToSender Then
writer.WriteLine("1")
Else
writer.WriteLine("0")
End If
If item.RequireMemberShip Then
writer.WriteLine("1")
Else
writer.WriteLine("0")
End If
Catch ex As Exception
Throw ex
Finally
If Not (writer Is Nothing) Then
writer.Close()
End If
End Try
End Sub 'AddListItem
Private Function FindItem(ByVal listName As String) As ArgoMailListItem
Dim item As ArgoMailListItem
For Each item In mailListItems
If item.Name = listName Then
Return item
End If
If item.Account = listName Then
Return item
End If
Next item
Return Nothing
End Function 'FindItem
Private Function CalcDiskSpace(ByVal sPath As String) As Long
Dim lDiskSpace As Long = 0
Dim aFiles As String() = Directory.GetFiles(sPath, "*.eml")
Dim file As String
For Each file In aFiles
Dim inf As New FileInfo(file)
lDiskSpace += inf.Length
Next file
Return lDiskSpace
End Function 'CalcDiskSpace
Private Function DomainAccounts(ByVal domainName As String) As ArrayList
Dim alUsers As New ArrayList()
Dim domainService As Service = ArgoMail.LoadLocalDomainsService()
If domainService.Succeed Then
Dim domainIndex As Integer = domainService.ComObject.IndexOf(domainName)
If domainIndex >= 0 Then
Dim userService As Service = ArgoMail.LoadUsersService()
If userService.Succeed Then
If userService.ComObject.Count > 0 Then
Dim user As Object = Nothing
Dim index As Integer
For index = 0 To userService.ComObject.Count - 1
user = userService.ComObject.Items(index)
If user.UserName.IndexOf(domainName) >= 0 Then
alUsers.Add(user)
End If
Next index
End If
End If
End If
End If
Return alUsers
End Function 'DomainAccounts
End Class 'ArgoMailLists

View file

@ -0,0 +1,165 @@
' Copyright (c) 2011, Outercurve Foundation.
' All rights reserved.
'
' Redistribution and use in source and binary forms, with or without modification,
' are permitted provided that the following conditions are met:
'
' - Redistributions of source code must retain the above copyright notice, this
' list of conditions and the following disclaimer.
'
' - Redistributions in binary form must reproduce the above copyright notice,
' this list of conditions and the following disclaimer in the documentation
' and/or other materials provided with the distribution.
'
' - Neither the name of the Outercurve Foundation nor the names of its
' contributors may be used to endorse or promote products derived from this
' software without specific prior written permission.
'
' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
' ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
' WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
' ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
' (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
' LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
' ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
' (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
' SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Friend Class ArgoMailListItem
Private _Id As String
Private _listItemName As String
Private _Account As String
Private _iDescriptionLines As Integer
Private _desription As String
Private _iMembersCount As Integer
Private _members() As String
Private _bListISClosed As Boolean
Private _bRepliesGoToSender As Boolean
Private _bRequireMemberShip As Boolean
Private _diskSpace As Long
Public Sub New()
End Sub 'New
Public Property ID() As String
Get
Return _Id
End Get
Set(ByVal value As String)
_Id = Value
End Set
End Property
Public Property Name() As String
Get
Return _listItemName
End Get
Set(ByVal value As String)
_listItemName = value
End Set
End Property
Public Property Account() As String
Get
Return _Account
End Get
Set(ByVal value As String)
_Account = Value
End Set
End Property
Public Property DescriptionLines() As Integer
Get
Return _iDescriptionLines
End Get
Set(ByVal value As Integer)
_iDescriptionLines = Value
End Set
End Property
Public Property Desription() As String
Get
Return _desription
End Get
Set(ByVal value As String)
_desription = Value
End Set
End Property
Public Property Count() As Integer
Get
Return _iMembersCount
End Get
Set(ByVal value As Integer)
_iMembersCount = Value
End Set
End Property
Public Property Members() As String()
Get
Return _members
End Get
Set(ByVal value As String())
_members = Value
End Set
End Property
Public Property ListISClosed() As Boolean
Get
Return _bListISClosed
End Get
Set(ByVal value As Boolean)
_bListISClosed = Value
End Set
End Property
Public Property RepliesGoToSender() As Boolean
Get
Return _bRepliesGoToSender
End Get
Set(ByVal value As Boolean)
_bRepliesGoToSender = Value
End Set
End Property
Public Property RequireMemberShip() As Boolean
Get
Return _bRequireMemberShip
End Get
Set(ByVal value As Boolean)
_bRequireMemberShip = Value
End Set
End Property
Public Property DiskSpace() As Long
Get
Return _diskSpace
End Get
Set(ByVal value As Long)
_diskSpace = Value
End Set
End Property
End Class 'ArgoMailListItem

View file

@ -0,0 +1,13 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.1
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>false</MySubMain>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>1</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View file

@ -0,0 +1,19 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("WebsitePanel.Providers.Mail.ArgoMail")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyProduct("WebsitePanel.Providers.Mail.ArgoMail")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("5b2569a2-e617-491f-a55d-a18a6f2035c7")>

View file

@ -0,0 +1,63 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.1
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("WebsitePanel.Providers.Mail.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
End Module
End Namespace

View file

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.1
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.WebsitePanel.Providers.Mail.My.MySettings
Get
Return Global.WebsitePanel.Providers.Mail.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View file

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View file

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{FCD88E94-349D-4BB2-A726-6E47A4F01DC2}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>WebsitePanel.Providers.Mail</RootNamespace>
<AssemblyName>WebsitePanel.Providers.Mail.ArgoMail</AssemblyName>
<MyType>Windows</MyType>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>None</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\VersionInfo.vb">
<Link>VersionInfo.vb</Link>
</Compile>
<Compile Include="ArgoMail.vb" />
<Compile Include="ArgoMailList.vb" />
<Compile Include="ArgoMailListItem.vb" />
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WebsitePanel.Providers.Base\WebsitePanel.Providers.Base.csproj">
<Project>{684C932A-6C75-46AC-A327-F3689D89EB42}</Project>
<Name>WebsitePanel.Providers.Base</Name>
</ProjectReference>
<ProjectReference Include="..\WebsitePanel.Server.Utils\WebsitePanel.Server.Utils.csproj">
<Project>{E91E52F3-9555-4D00-B577-2B1DBDD87CA7}</Project>
<Name>WebsitePanel.Server.Utils</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>