---
title: Sites
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

List of examples:

## Sites

### Creating a new site

```csharp

// Creates a new site object
SiteInfo newSite = new SiteInfo();

// Sets the site properties
newSite.DisplayName = "New site";
newSite.SiteName = "NewSite";
newSite.Status = SiteStatusEnum.Stopped;
newSite.DomainName = "127.0.0.1";

// Saves the site to the database
SiteInfoProvider.SetSiteInfo(newSite);

```

[> Back to list of examples](#sites-toc)

### Updating a site

```csharp

// Gets the site
SiteInfo updateSite = SiteInfoProvider.GetSiteInfo("NewSite");
if (updateSite != null)
{
    // Updates the site properties
    updateSite.DisplayName = updateSite.DisplayName.ToLower();

    // Saves the modified site to the database
    SiteInfoProvider.SetSiteInfo(updateSite);
}

```

[> Back to list of examples](#sites-toc)

### Updating multiple sites

```csharp

// Gets all sites whose code name starts with 'New'
var sites = SiteInfoProvider.GetSites().WhereStartsWith("SiteName", "New");

// Loops through individual sites
foreach (SiteInfo site in sites)
{
    // Updates the site properties
    site.DisplayName = site.DisplayName.ToUpper();

    // Saves the modified site to the database
    SiteInfoProvider.SetSiteInfo(site);
}

```

[> Back to list of examples](#sites-toc)

### Assigning a culture to a site

```csharp

// Gets the site and culture objects
SiteInfo site = SiteInfoProvider.GetSiteInfo("NewSite");
CultureInfo culture = CultureInfoProvider.GetCultureInfo("ar-sa");

if ((site != null) && (culture != null))
{
    // Assigns the culture to the site
    CultureSiteInfoProvider.AddCultureToSite(culture.CultureID, site.SiteID);
}

```

[> Back to list of examples](#sites-toc)

### Removing a culture from a site

```csharp

// Gets the site and culture objects
SiteInfo site = SiteInfoProvider.GetSiteInfo("NewSite");
CultureInfo culture = CultureInfoProvider.GetCultureInfo("ar-sa");

if ((site != null) && (culture != null))
{
    // Removes the culture from the site
    CultureSiteInfoProvider.RemoveCultureFromSite(culture.CultureID, site.SiteID);
}

```

[> Back to list of examples](#sites-toc)

### Adding a domain alias to a site

```csharp

// Gets the site object
SiteInfo site = SiteInfoProvider.GetSiteInfo("NewSite");

if (site != null)
{
    // Creates a new site domain alias object
    SiteDomainAliasInfo newAlias = new SiteDomainAliasInfo();                   
    newAlias.SiteDomainAliasName = "127.0.0.1";

    // Assigns the domain alias to the site
    newAlias.SiteID = site.SiteID;

    // Saves the site domain alias to the database
    SiteDomainAliasInfoProvider.SetSiteDomainAliasInfo(newAlias);
}

```

[> Back to list of examples](#sites-toc)

### Deleting a site's domain alias

```csharp

// Gets the site object
SiteInfo site = SiteInfoProvider.GetSiteInfo("NewSite");

if (site != null)
{
    // Gets the specified domain alias for the site
    SiteDomainAliasInfo deleteAlias = SiteDomainAliasInfoProvider.GetSiteDomainAliasInfo("127.0.0.1", site.SiteID);

    // Deletes the site domain alias
    SiteDomainAliasInfoProvider.DeleteSiteDomainAliasInfo(deleteAlias);
}

```

[> Back to list of examples](#sites-toc)

### Deleting a site

```csharp

// Gets the site
SiteInfo deleteSite = SiteInfoProvider.GetSiteInfo("NewSite");

if (deleteSite != null)
{
    // Gets a TreeProvider instance
    TreeProvider treeProvider = new TreeProvider(MembershipContext.AuthenticatedUser);

    // Deletes the pages that belong to the site
    DocumentHelper.DeleteSiteTree(deleteSite.SiteName, treeProvider);

    // Deletes the site
    SiteInfoProvider.DeleteSite(deleteSite);
}

```

[> Back to list of examples](#sites-toc)

## Site actions

### Starting a site

```csharp

// Gets the site
SiteInfo site = SiteInfoProvider.GetSiteInfo("NewSite");
if (site != null)
{
    // Starts the site
    SiteInfoProvider.RunSite(site.SiteName);
}

```

[> Back to list of examples](#sites-toc)

### Stopping a site

```csharp

// Gets the site
SiteInfo site = SiteInfoProvider.GetSiteInfo("NewSite");
if (site != null)
{
    // Stops the site
    SiteInfoProvider.StopSite(site.SiteName);
}

```

[> Back to list of examples](#sites-toc)
