コード例 #1
0
ファイル: BindingRepository.cs プロジェクト: stantoxt/Kooboo
        public void EnsureLocalBinding()
        {
            if (!AppSettings.IsOnlineServer)
            {
                var allbindings = GlobalDb.Bindings.All();
                foreach (var item in allbindings)
                {
                    var domain = GlobalDb.Domains.Get(item.DomainId);
                    if (domain != null)
                    {
                        string fullname = domain.DomainName;
                        if (!string.IsNullOrEmpty(item.SubDomain))
                        {
                            fullname = item.SubDomain + "." + fullname;
                        }
                        WindowsHost.AddOrUpdate(fullname, "127.0.0.1");
                    }
                }

                // TEMP. remove all thetheme.com binding.
                var alldomains = Kooboo.Data.Hosts.WindowsHost.GetList();
                foreach (var item in alldomains)
                {
                    if (!string.IsNullOrEmpty(item.Domain) && item.Domain.ToLower().EndsWith("thetheme.com"))
                    {
                        Data.Hosts.WindowsHost.Delete(item.Domain);
                    }
                }
            }

            WindowsHost.AddOrUpdate(AppSettings.DefaultLocalHost, "127.0.0.1");
            WindowsHost.AddOrUpdate(AppSettings.StartHost, "127.0.0.1");
        }
コード例 #2
0
 public CreateHostPage()
 {
     InitializeComponent();
     back.Content  = Data.Language.Hardcoded.GetValue("back");
     save.Content  = Data.Language.Hardcoded.GetValue("save");
     hostViewModel = new NewHostViewModel
     {
         Title      = Data.Language.Hardcoded.GetValue("+ New host"),
         From       = _parent,
         AddCommand = new DelegateCommand <NewHostViewModel>(vm =>
         {
             if (!vm.IsValid())
             {
                 MessageBox.Show(vm.Error);
                 return;
             }
             if (vm.Domain == vm.DomainPlaceholder)
             {
                 MessageBox.Show(Data.Language.Hardcoded.GetValue("Domain is required"));
                 return;
             }
             else if (vm.IP == vm.IpPlaceholder)
             {
                 MessageBox.Show(Data.Language.Hardcoded.GetValue("IP is required"));
                 return;
             }
             WindowsHost.AddOrUpdate(vm.Domain, vm.IP);
             this.Redirect(new HostPage());
         })
     };
     DataContext = hostViewModel;
 }
コード例 #3
0
        public bool AddOrUpdate(Domain Domain)
        {
            string localip = "127.0.0.1";

            WindowsHost.AddOrUpdate(Domain.DomainName, localip);
            this.domainstore.AddOrUpdate(Domain);
            return(true);
        }
コード例 #4
0
ファイル: BindingRepository.cs プロジェクト: stantoxt/Kooboo
        public override bool AddOrUpdate(Binding value)
        {
            var ok = base.AddOrUpdate(value);

            if (ok)
            {
                lock (writelock)
                {
                    LocalCache[value.Id] = value;
                    if (!AppSettings.IsOnlineServer)
                    {
                        var fullname = value.FullName;
                        WindowsHost.AddOrUpdate(fullname, "127.0.0.1");
                    }
                }
            }
            return(ok);
        }
コード例 #5
0
ファイル: BindingRepository.cs プロジェクト: stantoxt/Kooboo
        public void AddOrUpdate(string rootDomain, string subDomain, Guid webSiteId, Guid organizationId, bool defaultbinding = false, int port = 0)
        {
            Guid domainid = default(Guid);

            if (!string.IsNullOrEmpty(rootDomain))
            {
                domainid = IDGenerator.GetDomainId(rootDomain);
            }

            if (!AppSettings.IsOnlineServer && domainid != default(Guid))
            {
                var domain = GlobalDb.Domains.Get(domainid);
                if (domain == null)
                {
                    WindowsHost.AddOrUpdate(rootDomain, "127.0.0.1");
                    GlobalDb.Domains.AddOrUpdate(new Domain()
                    {
                        DomainName     = rootDomain,
                        OrganizationId = organizationId
                    });
                }
            }

            Binding binding = new Binding
            {
                DomainId           = domainid,
                OrganizationId     = organizationId,
                SubDomain          = string.IsNullOrEmpty(subDomain) ? null : subDomain.ToLower(),
                WebSiteId          = webSiteId,
                DefaultPortBinding = defaultbinding,
                Port = port
            };

            var old = this.Get(binding.Id);

            if (old != null)
            {
                throw new Exception("binding already exists");
            }
            else
            {
                AddOrUpdate(binding);
            }
        }
コード例 #6
0
        public void EnsureLocalBinding()
        {
            if (!AppSettings.IsOnlineServer)
            {
                var allbindings = GlobalDb.Bindings.All();
                foreach (var item in allbindings)
                {
                    var domain = GlobalDb.Domains.Get(item.DomainId);
                    if (domain != null)
                    {
                        string fullname = domain.DomainName;
                        if (!string.IsNullOrEmpty(item.SubDomain))
                        {
                            fullname = item.SubDomain + "." + fullname;
                        }
                        WindowsHost.AddOrUpdate(fullname, "127.0.0.1");
                    }
                }
            }

            WindowsHost.AddOrUpdate(AppSettings.DefaultLocalHost, "127.0.0.1");
            WindowsHost.AddOrUpdate(AppSettings.StartHost, "127.0.0.1");
        }