private void resetPendingActions(Website website)
        {
            // Set a new arrays without all the deleted items.
            website.DnsZoneArray  = website.DnsZoneArray.Where(z => z.PendingAction != ChildPendingAction.Delete).ToArray();
            website.SecurityArray = website.SecurityArray.Where(r => r.PendingAction != ChildPendingAction.Delete).ToArray();
            website.HostArray     = website.HostArray.Where(h => !RhspData.IsDeleteOrDiscard(h)).ToArray();

            // Then, mark the pending actions to none so duplicates arent created.
            website.DnsZoneArray.ToList().ForEach(z => z.ResetPendingActions());
            website.SecurityArray.ToList().ForEach(r => r.PendingAction = ChildPendingAction.None);
            website.HostArray.ToList().ForEach(h => h.PendingAction     = ChildPendingAction.None);

            // Refresh the editor controls with the removed data.
            websiteDnsZoneEditorControl1.RunReflectDataToForm(DataEditorMode.None);
            websiteSecurityEditorControl1.RunReflectDataToForm(DataEditorMode.None);
            websiteHostNameEditorControl1.RunReflectDataToForm(DataEditorMode.None);
        }
Example #2
0
 private RhspDataAttribute GetRuntimeHda(Type type)
 {
     return(RhspData.GetRuntimeHda(type));
 }
Example #3
0
 private void removeWebsiteHost(WebsiteHost host)
 {
     RhspData.SetDeleteOrDiscard(host);
     hostBindingList.Remove(host);
 }
Example #4
0
        private void updateIisSite(Website website, Site site)
        {
            var aq = from a in site.Applications
                     where a.Path == "/"
                     select a;

            Application application;

            if (aq.Count() != 0)
            {
                application = aq.First();
                applyApplicationValues(website, application);
            }
            else
            {
                application      = site.Applications.CreateElement();
                application.Path = "/";
                applyApplicationValues(website, application);
                site.Applications.Add(application);
            }

            var vq = from v in application.VirtualDirectories
                     where v.Path == "/"
                     select v;

            VirtualDirectory virtualDirectory;

            if (vq.Count() != 0)
            {
                virtualDirectory = vq.First();
                applyVirtualDirectoryValues(website, virtualDirectory);
            }
            else
            {
                virtualDirectory      = application.VirtualDirectories.CreateElement();
                virtualDirectory.Path = "/";
                applyVirtualDirectoryValues(website, virtualDirectory);
                application.VirtualDirectories.Add(virtualDirectory);
            }

            site.Bindings.Clear();
            foreach (WebsiteHost websiteHost in
                     website.HostArray.Where(h => !RhspData.IsDeleteOrDiscard(h)))
            {
                Binding binding = site.Bindings.CreateElement();
                binding.Protocol           = websiteHost.GetIisProtocol();
                binding.BindingInformation = websiteHost.GetBindingInformation();
                site.Bindings.Add(binding);
            }

            try
            {
                iisManager.CommitChanges();
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to commit changes to IIS site.", ex);
            }

            website.IisSite.SiteID = site.Id;
        }