It’s pretty easy now to get your Office 365 tenant ID. Here, I will demonstrate three ways, by which you can retrieve your tenant ID :-
- Azure portal (new and old)
- PowerShell
- SharePoint Online
It’s pretty easy now to get your Office 365 tenant ID. Here, I will demonstrate three ways, by which you can retrieve your tenant ID :-
using Microsoft.SharePoint.Client;using Microsoft.Online.SharePoint.TenantAdministration;
Following is the full code sample for creating a new sitecollection in SharePoint using CSOM.
bool rootSiteExist;
SP.ClientContext ctx = new ClientContext(siteUrl);
ctx.Credentials = new SharePointOnlineCredentials(userName, passWord);
this.ctx.Load(this.ctx.Web);
try
{
ctx.ExecuteQuery();
rootSiteExist = true;
}
catch (Exception)
{
//Indicates the given sub site is missing
//This block will be executed when the given Web is not found on the server
rootSiteExist = false;
}
//Create a Site if there is no existing site with the same url.
if(!rootSiteExist)
{
string targetURL = "https://-admin.sharepoint.com";
SP.ClientContext adminCtx = new SP.ClientContext(siteUrl);
adminCtx.Credentials = new SharePointOnlineCredentials(userName, passWord);
Tenant tenant = new Tenant(context);
adminCtx.Load(tenant, t => t.ResourceQuota, t => t.ResourceQuotaAllocated, t => t.StorageQuota, t => t.StorageQuotaAllocated);
adminCtx.ExecuteQuery();
double avaialableResource = tenant.ResourceQuota - tenant.ResourceQuotaAllocated;
long availableStorageResource = tenant.StorageQuota - tenant.StorageQuotaAllocated;
long storageMaximumLevel = 1000; //say
double userCodeMaximumLevel = 300 //say
if (availableStorageResource >= storageMaximumLevel)
{
if (avaialableResource >= userCodeMaximumLevel)
{
bool retryAttemted = false;
while (true)
{
var properties = new SiteCreationProperties()
{
CompatibilityLevel = compatibilityLevel,
Url = siteUrl,
Owner = owner,
Template = template,
StorageMaximumLevel = storageMaximumLevel,
UserCodeMaximumLevel = userCodeMaximumLevel,
};
tenant.CreateSite(properties);
adminCtx.Load(tenant);
try
{
/*If you get an error here it means, a root site with the same url is lying in the RecycleBin of the admin Site Collection. In that case
you have to first remove the deleted site before proceeding.*/
adminCtx.ExecuteQuery();
break;
}
catch (SP.ServerException)
{
if (retryAttemted)
throw;
tenant.RemoveDeletedSite(siteUrl);
connect.adminCtx.ExecuteQuery();
retryAttemted = true;
}
}
/*Now trying to connect to the newly cretaed Site with the given Url. The site may not show up immediately, hence constantly trying to connect to the site after a given time interval (wait period).*/
int retryCount = 0;
SP.Web web = null;
while (true)
{
try
{
ctx = new ClientContext(siteUrl);
ctx.Credentials = new SharePointOnlineCredentials(userName, passWord);
web = this.ctx.Web;
this.ctx.Load(web);
this.ctx.ExecuteQuery();
break;
}
catch (Exception)
{
++retryCount;
if (retryCount <= 20)
{
Thread.Sleep(200000);
continue;
}
break;
}
}
}
else
{
//Resources are inadequate
}
}else
{
//Storage Size is inadequate
}
}