Click here to Skip to main content
15,884,388 members
Articles / Programming Languages / C#

LumiSoft MailServer

Rate me:
Please Sign up or sign in to vote.
3.79/5 (22 votes)
17 Nov 2006CPOL1 min read 321.3K   4.9K   74  
Full featured SMTP/POP3/IMAP server
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

using LumiSoft.MailServer.API.UserAPI;

namespace LumiSoft.MailServer.UI
{
    /// <summary>
    /// System backup/restore window.
    /// </summary>
    public class wfrm_System_Backup : Form
    {
        // Backup UI
        private GroupBox m_pGroubBox_Backup  = null;
        private Button   m_pBackup           = null;
        private Button   m_pBackupMessages   = null;
        // Restore UI
        private GroupBox m_pGroupBox_Restore    = null;        
        private Button   m_pRestore             = null;
        private CheckBox m_pRestoreFlagsAdd     = null;
        private CheckBox m_pRestoreFlagsReplace = null;

        private VirtualServer m_pVirtualServer = null;

        /// <summary>
        /// Default constructor.
        /// </summary>
        /// <param name="virtualServer">Virtual server.</param>
        public wfrm_System_Backup(VirtualServer virtualServer)
        {
            m_pVirtualServer = virtualServer;

            InitUI();
        }

        #region method InitUI

        /// <summary>
        /// Creates and initializes window UI.
        /// </summary>
        private void InitUI()
        {
            this.Size = new Size(472,357);

            //--- Backup UI -------------------------------------//
            m_pGroubBox_Backup = new GroupBox();
            m_pGroubBox_Backup.Size = new Size(400,150);
            m_pGroubBox_Backup.Location = new Point(20,20);
            m_pGroubBox_Backup.Text = "Backup:";

            m_pBackup = new Button();
            m_pBackup.Size = new Size(110,20);
            m_pBackup.Location = new Point(20,40);
            m_pBackup.Text = "Backup";
            m_pBackup.Click += new EventHandler(m_pBackup_Click);

            m_pBackupMessages = new Button();
            m_pBackupMessages.Size = new Size(110,20);
            m_pBackupMessages.Location = new Point(20,80);
            m_pBackupMessages.Text = "Backup Messages";
            m_pBackupMessages.Click += new EventHandler(m_pBackupMessages_Click);

            m_pGroubBox_Backup.Controls.Add(m_pBackup);
            m_pGroubBox_Backup.Controls.Add(m_pBackupMessages);
            //---------------------------------------------------//
            
            //--- Restore UI ------------------------------------//
            m_pGroupBox_Restore = new GroupBox();
            m_pGroupBox_Restore.Size = new Size(400,150);
            m_pGroupBox_Restore.Location = new Point(20,200);
            m_pGroupBox_Restore.Text = "Restore:";

            m_pRestore = new Button();
            m_pRestore.Size = new Size(70,20);
            m_pRestore.Location = new Point(20,40);
            m_pRestore.Text = "Restore";
            m_pRestore.Click += new EventHandler(m_pRestore_Click);

            m_pRestoreFlagsAdd = new CheckBox();
            m_pRestoreFlagsAdd.Size = new Size(200,20);
            m_pRestoreFlagsAdd.Location = new Point(20,70);
            m_pRestoreFlagsAdd.Text = "Add non existent items";
            m_pRestoreFlagsAdd.Checked = true;
            
            m_pRestoreFlagsReplace = new CheckBox();
            m_pRestoreFlagsReplace.Size = new Size(200,20);
            m_pRestoreFlagsReplace.Location = new Point(20,95);
            m_pRestoreFlagsReplace.Text = "Replace existing items";
            m_pRestoreFlagsReplace.Checked = false;
            
            m_pGroupBox_Restore.Controls.Add(m_pRestore);
            m_pGroupBox_Restore.Controls.Add(m_pRestoreFlagsAdd);
            m_pGroupBox_Restore.Controls.Add(m_pRestoreFlagsReplace);
            //--------------------------------------------------//

            //--- Common UI
            this.Controls.Add(m_pGroubBox_Backup);
            this.Controls.Add(m_pGroupBox_Restore);
        }
                                                
        #endregion


        #region Events Handling

        #region method m_pBackup_Click

        private void m_pBackup_Click(object sender, EventArgs e)
        {
            SaveFileDialog dlg = new SaveFileDialog();
            dlg.Filter = "LS Mail Server backup (*.lsmbck)|*.lsmbck";
            if(dlg.ShowDialog(this) == DialogResult.OK){
                m_pVirtualServer.Backup(dlg.FileName);
            }
        }

        #endregion

        #region method m_pBackupMessages_Click

        private void m_pBackupMessages_Click(object sender,EventArgs e)
        {
            wfrm_utils_BackupMessages frm = new wfrm_utils_BackupMessages(m_pVirtualServer);
            frm.ShowDialog(this);
        }

        #endregion


        #region method m_pRestore_Click

        private void m_pRestore_Click(object sender, EventArgs e)
        {
            RestoreFlags_enum restoreFlags = 0;
            if(m_pRestoreFlagsAdd.Checked){
                restoreFlags |= RestoreFlags_enum.Add;
            }
            if(m_pRestoreFlagsReplace.Checked){
                restoreFlags |= RestoreFlags_enum.Replace;
            }

            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "LS Mail Server backup (*.lsmbck)|*.lsmbck";
            if(dlg.ShowDialog(this) == DialogResult.OK){
                m_pVirtualServer.Restore(dlg.FileName,restoreFlags);
            }
        }

        #endregion

        #endregion

    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Estonia Estonia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions