示例#1
0
        public MockServer(ServerSetup setup)
            : base(setup)
        {
            _serverData = MockServerData.GetInstance();

            _serverData.Domains.Clear();
            _serverData.Mailboxes.Clear();
            _serverData.Groups.Clear();

            _domainDal      = new WebDomainDal(setup.Tenant);
            _mailboxDal     = new MailboxDal(setup.Tenant, SetupInfo.Limits.MailboxMaxCountPerUser);
            _mailgroupDal   = new MailGroupDal(setup.Tenant);
            _mailaddressDal = new MailAddressDal(setup.Tenant);

            var domains = _domainDal.GetTenantDomains();

            foreach (var domain in domains)
            {
                _serverData.Domains.Add(new WebDomainBase(domain.name));
            }

            var mailboxesDto = _mailboxDal.GetMailboxes();

            foreach (var mailboxDto in mailboxesDto)
            {
                var aliasList =
                    _mailaddressDal.GetMailboxAliases(mailboxDto.mailbox.id)
                    .Select(
                        aliasDto =>
                        new MailAddressBase(aliasDto.name, new WebDomainBase(aliasDto.domain.name)))
                    .ToList();

                var resultMailbox = new MailboxBase(
                    new MailAccountBase(mailboxDto.mailbox.address),
                    //Its not login. It adress. Needed only for testing
                    new MailAddressBase(mailboxDto.mailbox_address.name,
                                        new WebDomainBase(mailboxDto.mailbox_address.domain.name)), aliasList);

                _serverData.Mailboxes.Add(resultMailbox);
            }

            var groupsDto = _mailgroupDal.GetMailGroups();

            foreach (var resultGroup in from groupDto in groupsDto
                     let groupAddresses = groupDto.addresses.Select(address =>
                                                                    new MailAddressBase(address.name,
                                                                                        new WebDomainBase
                                                                                        (
                                                                                            address
                                                                                            .domain
                                                                                            .name)))
                                          .ToList()
                                          select new MailGroupBase(
                         new MailAddressBase(groupDto.address.name,
                                             new WebDomainBase(groupDto.address.domain.name)),
                         groupAddresses))
            {
                _serverData.Groups.Add(resultGroup);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ServerSetupController"/> class.
        /// </summary>
        /// <param name="view"> The associated view. </param>
        /// <param name="model"> The associated model. </param>
        public ServerSetupController(ServerSetupWindow view, ServerSetup model)
        {
            this.view = view;
            this.model = model;

            this.view.Closed += (o, eA) => Environment.Exit(-1);
            this.view.ConnectBtn.Click += (o, eA) => this.ConnectClicked();
        }
示例#3
0
        public Main()
        {
            var setupView = new ServerSetupWindow();

            setupView.Show();
            var setupModel = new ServerSetup();

            this.setup            = new ServerSetupController(setupView, setupModel);
            this.setup.Connected += this.ShowApplication;

            Application.Run();
        }
示例#4
0
        public PostfixServer(ServerSetup setup)
            : base(setup)
        {
            _dbManager = new PostfixAdminDbManager(setup.ServerId, setup.ConnectionString);

            var json = JObject.Parse(setup.ConnectionString);

            if (json["Api"] != null)
            {
                _serverApi = new ServerApi
                {
                    server_ip = json["Api"]["Server"].ToString(),
                    port      = Convert.ToInt32(json["Api"]["Port"].ToString()),
                    protocol  = json["Api"]["Protocol"].ToString(),
                    version   = json["Api"]["Version"].ToString(),
                    token     = json["Api"]["Token"].ToString()
                };
            }
        }
 protected override void OnSetup()
 {
     ServerSetup.Go();
 }
示例#6
0
 public override MailServerBase CreateServer(ServerSetup setup)
 {
     return(new MockServer(setup));
 }
示例#7
0
 protected ServerModel(ServerSetup setup)
     : base(setup)
 {
 }
示例#8
0
 public RegisterWorkerSteps()
 {
     _server = ServerSetup.Setup();
     _client = _server.CreateClient();
 }
示例#9
0
 public UpdateWorkerSteps()
 {
     _server        = ServerSetup.Setup();
     _client        = _server.CreateClient();
     _serviceWorker = (IServiceWorker)_server.Services.GetService(typeof(IServiceWorker));
 }
 public abstract MailServerBase CreateServer(ServerSetup setup);
示例#11
0
            public EmbeddedServer Start()
            {
                var virtualDirectory = virtualDirectories.First();

                var mainAppVirtualPath  = virtualDirectory.VirtualPath;
                var mainApp             = virtualDirectory.ServerApp.Start(new ServerAppConfiguration(virtualDirectory.VirtualPath));
                var mainAppPhysicalPath = mainApp.PhysicalPath;

                var resources = new List <IDisposable>(virtualDirectories.Count);

                resources.Add(mainApp);

                Console.WriteLine("Starting server at {0}", mainAppPhysicalPath);

                string dirPath;

                try
                {
                    dirPath = Path.GetFullPath(mainAppPhysicalPath);
                } catch (Exception e)
                {
                    Console.WriteLine("Failed to starting server at {0}", mainAppPhysicalPath);
                    throw;
                }

                if (!Directory.Exists(dirPath))
                {
                    throw new DirectoryNotFoundException(dirPath);
                }

                Console.WriteLine("Main Virtual Path: {0} -> {1}", mainAppVirtualPath, mainAppPhysicalPath);

                var server = new Server(port, mainAppVirtualPath, mainAppPhysicalPath);

                virtualDirectories.Skip(1).ToList().ForEach(additionalMapping =>
                {
                    var additionalApp = additionalMapping.ServerApp.Start(new ServerAppConfiguration(additionalMapping.VirtualPath));

                    resources.Add(additionalApp);

                    Console.WriteLine("Extra Virtual Path: {0} -> {1}", additionalMapping.VirtualPath, additionalApp.PhysicalPath);

                    server.RegisterAdditionalMapping(additionalMapping.VirtualPath, additionalApp.PhysicalPath);
                });

                server.OutputWriter = outputWriter;

                server.Start(info =>
                {
                    var serverSetup = new ServerSetup(server, info.Port);

                    foreach (var setupAction in setupActions.ToArray())
                    {
                        setupAction(serverSetup);
                    }
                });

                var embeddedServer = new EmbeddedServer(server, resources);

                AppDomain.CurrentDomain.DomainUnload += (e, a) =>
                {
                    embeddedServer.Dispose();
                };

                return(embeddedServer);
            }
示例#12
0
        private static ActionResult ProcessInstall(Session Ctx, WiXInstallType InstallType)
        {
            IWiXSetup Install = null;

            try
            {
                Ctx.AttachToSetupLog();
                switch (InstallType)
                {
                case WiXInstallType.InstallServer:
                    Install = ServerSetup.Create(Ctx.CustomActionData, SetupActions.Install);
                    break;

                case WiXInstallType.RemoveServer:
                    Install = ServerSetup.Create(Ctx.CustomActionData, SetupActions.Uninstall);
                    break;

                case WiXInstallType.MaintenanceServer:
                    Install = ServerSetup.Create(Ctx.CustomActionData, SetupActions.Setup);
                    break;

                case WiXInstallType.InstallEnterpriseServer:
                    Install = EServerSetup.Create(Ctx.CustomActionData, SetupActions.Install);
                    break;

                case WiXInstallType.RemoveEnterpriseServer:
                    Install = EServerSetup.Create(Ctx.CustomActionData, SetupActions.Uninstall);
                    break;

                case WiXInstallType.MaintenanceEnterpriseServer:
                    Install = EServerSetup.Create(Ctx.CustomActionData, SetupActions.Setup);
                    break;

                case WiXInstallType.InstallPortal:
                    Install = PortalSetup.Create(Ctx.CustomActionData, SetupActions.Install);
                    break;

                case WiXInstallType.RemovePortal:
                    Install = PortalSetup.Create(Ctx.CustomActionData, SetupActions.Uninstall);
                    break;

                case WiXInstallType.MaintenancePortal:
                    Install = PortalSetup.Create(Ctx.CustomActionData, SetupActions.Setup);
                    break;

                default:
                    throw new NotImplementedException();
                }
                Install.Run();
            }
            catch (WiXSetupException we)
            {
                Ctx.Log("Expected exception: " + we.ToString());
                return(ActionResult.Failure);
            }
            catch (Exception ex)
            {
                Ctx.Log(ex.ToString());
                return(ActionResult.Failure);
            }
            return(ActionResult.Success);
        }