コード例 #1
0
        public bool Exists(RhspDataID dataID, Type type)
        {
            RhspDataAttribute hda    = GetRuntimeHda(type);
            XElement          parent = getParent(ConfigDocument, hda.Parent);

            return(find(parent, dataID, hda).Count() != 0);
        }
コード例 #2
0
        public XElement GetElement(RhspDataID dataID, Type dataType)
        {
            RhspDataAttribute hda     = GetRuntimeHda(dataType);
            XElement          element = getElementUsingHda(ConfigDocument, dataID, hda);

            return(element);
        }
コード例 #3
0
 private string getFullPath(RhspDataID websiteID, string relativePath)
 {
     return(SecurityTemplate.GetFullPath(
                ServerConfig.WebsiteDirectory,
                CreateManager <WebsiteManager>().Get(websiteID),
                relativePath));
 }
コード例 #4
0
 public void FromElement(XElement element, HostingConfigManager manager)
 {
     WebsiteID        = new RhspDataID(element.GetElementValue <string>("WebsiteID", false));
     Name             = element.GetElementValue <string>("Name", false);
     DefaultTtl       = element.GetElementValue <string>("DefaultTtl", false);
     this.RecordArray = getRecordArray(element, manager);
 }
コード例 #5
0
        public void Delete(RhspDataID dataID)
        {
            DnsZone dnsZone = HostingConfig.GetSingle <DnsZone>(dataID);

            HostingConfig.Delete <DnsZone>(dataID);
            CreateManager <IscBindManager>().DeleteZone(dnsZone);
        }
コード例 #6
0
        public CustomerDeleteResult Delete(RhspDataID dataID)
        {
            CustomerDeleteResult r = new CustomerDeleteResult();

            // Get the customer to delete physical objects.
            Customer customer = Get(dataID);

            // Delete websites belonging to customer.
            WebsiteManager wm = CreateManager <WebsiteManager>();

            wm.GetByCustomer(dataID).ToList().ForEach(
                w => r.Errors.AddRange(wm.Delete(w.DataID).Errors));

            // Make client directory obsolete after websites are made obsolete.
            MakeDirectoryObsoleteResult mdor = TryMakeDirectoryObsolete(getDirectory(customer));

            if (mdor.Error != null)
            {
                r.Errors.Add(mdor.Error.Message);
            }

            // Delete ftp users, group, and security.
            deleteFtpObjects(customer);

            // Finally delete the actual customer configuration.
            Context.HostingConfig.Delete <Customer>(dataID);

            return(r);
        }
コード例 #7
0
 private void setSelectedPrimaryHost(RhspDataID websiteHostID)
 {
     if (websiteHostID != null)
     {
         List <WebsiteHost> list = primaryHostComboBox.Items.Cast <WebsiteHost>().ToList();
         primaryHostComboBox.SelectedItem = list.Find(c => c.DataID == websiteHostID);
     }
 }
コード例 #8
0
        void CustomerViewer_New(object sender, EventArgs e)
        {
            Customer           customer = new Customer(RhspDataID.Generate());
            CustomerEditorForm editor   = new CustomerEditorForm();

            editor.SetCreateMode(customer);
            ShowEditorAsync(editor);
        }
コード例 #9
0
        private XElement getRecordElement(XElement zoneElement, RhspDataID dataID)
        {
            var q = from r in zoneElement.Elements("Records").Elements()
                    where r.GetElementValue <string>("RecordID", false) == dataID.Value
                    select r;

            return(q.First());
        }
コード例 #10
0
 public void FromElement(XElement element, HostingConfigManager manager)
 {
     DataID     = new RhspDataID(element.GetElementValue <string>("RecordID", false));
     Name       = element.GetElementValue <string>("Name", false);
     Ttl        = element.GetElementValue <string>("Ttl", true);
     RecordType = getRecordType(element.GetElementValue <string>("RecordType", false));
     Value      = element.GetElementValue <string>("Value", false);
 }
コード例 #11
0
        private void deleteWithoutSave(RhspDataID dataID, Type dataType, XDocument document)
        {
            RhspDataAttribute hdca    = GetRuntimeHda(dataType);
            XElement          element = getElementUsingHda(document, dataID, hdca);

            // Simply remove the element.
            element.Remove();
        }
コード例 #12
0
        public Website[] GetByCustomer(RhspDataID dataID)
        {
            var q = from w in GetAll()
                    where w.CustomerID == dataID
                    select w;

            return(q.ToArray());
        }
コード例 #13
0
 public WebsiteDeleteResult Delete(RhspDataID dataID)
 {
     return(Run <WebsiteDeleteResult>("Delete", new { dataID }));
     //RhspConnection connection = CreateConnection();
     //RhspCommand command = new RhspCommand(connection, "Website.Delete");
     //command.Parameters.Add("dataID", dataID);
     //command.Execute();
 }
コード例 #14
0
 private void setSelectedCustomer(RhspDataID customerID)
 {
     if (customerID != null)
     {
         List <Customer> list = customerComboBox.Items.Cast <Customer>().ToList();
         customerComboBox.SelectedItem = list.Find(c => c.DataID.Equals(customerID));
     }
 }
コード例 #15
0
 public Website Get(RhspDataID dataID)
 {
     return(Run <Website>("Get", new { dataID }));
     //RhspConnection connection = CreateConnection();
     //RhspCommand command = new RhspCommand(connection, "Website.Get");
     //command.Parameters.Add("dataID", dataID);
     //RhspCommandResponse response = command.Execute();
     //return response.GetResult<Website>();
 }
コード例 #16
0
        private DnsZone convertToDnsZone(MsDnsZone mdz)
        {
            DnsZone dnsZone = new DnsZone(RhspDataID.Generate());

            dnsZone.DefaultTtl  = defaultTtl;
            dnsZone.Name        = mdz.Name;
            dnsZone.RecordArray = convertToDnsRecords(mdz.MixedReords).ToArray();
            return(dnsZone);
        }
コード例 #17
0
 public SecurityTemplate Get(RhspDataID dataID)
 {
     try
     {
         return(getQuery().Where(r => r.DataID == dataID).Single());
     }
     catch (Exception ex)
     {
         throw new Exception("Could not get security template with ID '" + dataID + "'.", ex);
     }
 }
コード例 #18
0
 public void FromElement(XElement element, HostingConfigManager manager)
 {
     WebsiteID      = new RhspDataID(element.GetElementValue <string>("WebsiteID", false));
     RelativePath   = element.GetElementValue <string>("RelativePath", false);
     Username       = element.GetElementValue <string>("Username", true);
     Read           = element.GetElementValue <bool>("Read", false);
     Write          = element.GetElementValue <bool>("Write", false);
     Delete         = element.GetElementValue <bool>("Delete", false);
     Access         = parseAccess(element.GetElementValue <string>("Access", false));
     UseIisIdentity = element.GetElementValue <bool>("UseIisIdentity", true);
 }
コード例 #19
0
        public WebsiteWizardForm(WebsiteViewer viewer)
        {
            InitializeComponent();

            this.Viewer  = viewer;
            this.Website = new Website(RhspDataID.Generate());

            AddPage(new WelcomePage());
            AddPage(new CustomerPage());
            AddPage(new SettingsPage());
            AddPage(new FinishPage());
        }
コード例 #20
0
 public TWebsite Get <TWebsite>(RhspDataID dataID)
     where TWebsite : Website
 {
     try
     {
         return(getQuery <TWebsite>().Where(w => w.DataID == dataID).Single());
     }
     catch (Exception ex)
     {
         throw new Exception("Could not get website where ID is '" + dataID + "'.", ex);
     }
 }
コード例 #21
0
        private void recordAddButton_Click(object sender, EventArgs e)
        {
            DnsRecord record = new DnsRecord(RhspDataID.Generate());

            record.PendingAction = ChildPendingAction.Create;

            recordResultList.Add(record);
            recordBindingList.Add(record);
            recordBindingList.ResetBindings();

            selectGridViewRow(recordDataGridView.Rows.Cast <DataGridViewRow>().Last().Index);
            recordDataGridView.BeginEdit(false);
        }
コード例 #22
0
        private IEnumerable <DnsRecord> convertToDnsRecords(IEnumerable <MsDnsRecord> mdrList)
        {
            List <DnsRecord> recordList = new List <DnsRecord>();

            foreach (MsDnsRecord mdr in mdrList.Where(mdr => (mdr.DnsType != MsDnsRecordType.Soa)))
            {
                DnsRecord record = new DnsRecord(RhspDataID.Generate());
                record.Name       = mdr.Name;
                record.Value      = getRecordValue(mdr);
                record.RecordType = convertToRecordType(mdr.DnsType);
                record.Ttl        = (mdr.TTL != 0) ? mdr.TTL.ToString() : null;
                recordList.Add(record);
            }
            return(recordList);
        }
コード例 #23
0
        private void addButton_Click(object sender, EventArgs e)
        {
            SecurityTemplate rule = new SecurityTemplate(RhspDataID.Generate());

            rule.PendingAction = ChildPendingAction.Create;
            //rule.Username = usernameBindingList.FirstOrDefault();

            ruleResultList.Add(rule);
            ruleBindingList.Add(rule);
            ruleBindingList.ResetBindings();

            ChangeMade();

            selectGridViewRow(dataGridView.Rows.Cast <DataGridViewRow>().Last().Index);
            dataGridView.BeginEdit(false);
        }
コード例 #24
0
        public void Delete(RhspDataID dataID)
        {
            SecurityTemplate securityTemplate = Get(dataID);

            if (!string.IsNullOrEmpty(securityTemplate.Username))
            {
                // Only try to delete the physical rule if the user is specified.
                WindowsUser windowsUser = findWindowsUser(securityTemplate.Username);
                if (windowsUser != null)
                {
                    // Only try to delete when the user is still on the system.
                    deleteFromFileSystem(securityTemplate, windowsUser.Sid);
                }
            }
            HostingConfig.Delete <SecurityTemplate>(dataID);
        }
コード例 #25
0
        private void delete(RhspDataID dataID, Type dataType)
        {
            IRhspData data = (IRhspData)getSingleOfType(dataID, dataType);

            deleteWithoutSave(dataID, dataType, ConfigDocument);

            if (data is IRhspDataParent)
            {
                // Set each child to deleted, then process.
                IRhspDataParent       dataParent = (IRhspDataParent)data;
                List <IRhspDataChild> childList  = dataParent.GetDataChildren().ToList();

                // Process all the marked deletions.
                childList.ForEach(c => c.PendingAction = ChildPendingAction.Delete);
            }
        }
コード例 #26
0
        private XElement getElementUsingHda(
            XDocument document,
            RhspDataID dataID,
            RhspDataAttribute hda)
        {
            XElement parent      = getParent(document, hda.Parent);
            var      uniqueQuery = find(parent, dataID, hda);

            // Ensure that ID actually exists.
            if (uniqueQuery.Count() == 0)
            {
                throw new InvalidOperationException(
                          "Unable to find element with unique ID of '" + dataID.Value + "'.");
            }

            return(uniqueQuery.First());
        }
コード例 #27
0
        private void addButton_Click(object sender, EventArgs e)
        {
            WebsiteHost host = new WebsiteHost(RhspDataID.Generate());

            host.PendingAction = ChildPendingAction.Create;
            host.Port          = WebsiteHost.DefaultHttpPort;
            host.IpAddress     = IpAddressArray.FirstOrDefault();

            hostList.Add(host);
            hostBindingList.Add(host);
            hostBindingList.ResetBindings();

            ChangeMade();

            selectGridViewRow(dataGridView.Rows.Cast <DataGridViewRow>().Last().Index);
            dataGridView.BeginEdit(false);
        }
コード例 #28
0
        private IEnumerable <XElement> find(
            XElement parent,
            RhspDataID dataID,
            RhspDataAttribute hda)
        {
            if (dataID == null)
            {
                throw new ArgumentNullException("dataID");
            }

            return(from child in
                   (
                       from element in parent.Elements()
                       select element.Element(hda.ID)
                   )
                   where child.Value == dataID.Value
                   select child.Parent); // Select the owner of the ID.
        }
コード例 #29
0
        public int GetDataSchemaVersion(RhspDataID dataID, Type type)
        {
            int version = 0;

            if ((dataID != null) && HostingConfig.Exists(dataID, type))
            {
                XElement e = HostingConfig.GetElement(dataID, type);
                version = e.GetElementValue <int>(SchemaVersionElement, true);
            }

            if (version != 0)
            {
                return(version);
            }
            else
            {
                // Return the default where none set.
                return(RhspData.FirstSchemaVersion);
            }
        }
コード例 #30
0
        private void addbutton_Click(object sender, EventArgs e)
        {
            DnsZone zone = new DnsZone(RhspDataID.Generate());

            zone.PendingAction = ChildPendingAction.Create;

            DnsZoneEditor editor = new DnsZoneEditor();

            editor.ReflectDataToForm(zone);
            DialogResult result = editor.ShowDialog();

            if (result == DialogResult.OK)
            {
                editor.ReflectFormToData(zone);
                resultList.Add(zone);
                bindingList.Add(zone);
                bindingList.ResetBindings();
                ChangeMade();
            }
        }