.. include:: /../common/authors.txt
Omnia base controller¶
When building Web API for Omnia extension it’s recommended to use the base class SharePointContextProvidedController from Omnia. This base class provides many useful services when working with SharePoint and Omnia.
using Omnia.Foundation.Extensibility.Core;
using Omnia.Foundation.Extensibility.Core.Utilities;
using Omnia.Foundation.Extensibility.WebApi;
using Omnia.Foundation.Models.Shared;
using Omnia.Foundation.Models.Logging;
using System;
using System.Web.Http;
using System.Collections.Generic;
using Microsoft.SharePoint.Client;
public class MyController: SharePointContextProvidedController
{
[HttpGet, Route("api/items")]
public ApiOperationResult<IEnumerable<Item>> GetItems()
{
try
{
// Your controller logic here
}
catch (Exception ex)
{
this
.Logging
.AddLog(this.GetType().ToString(), ex.Message, DefaultLogTypes.Error, ex);
return ApiUtils.CreateErrorResult<IEnumerable<Item>>(ex);
}
}
}
Omnia Foundation Services¶
SharePointContextProvidedController has a built-in Logging service which write to Omnia Foundation logs database. Other Omnia Foundation services can be accessed using the factory method WorkWith()
using Omnia.Foundation.Extensibility.Core;
using Omnia.Foundation.Extensibility.Core.Utilities;
using Omnia.Foundation.Extensibility.WebApi;
using Omnia.Foundation.Extensibility.Core.Configurations;
using Omnia.Foundation.Models.Shared;
using Omnia.Foundation.Models.Logging;
using System;
using System.Web.Http;
using System.Collections.Generic;
using Microsoft.SharePoint.Client;
public class MyController: SharePointContextProvidedController
{
[HttpGet, Route("api/items")]
public ApiOperationResult<IEnumerable<Item>> GetItems()
{
try
{
// Use Omnia configuration service
var configuration = WorkWith().Configurations().GetConfiguration(
name: "configuration-name",
region: "configuration-region");
}
catch (Exception ex)
{
// Built-in logging service
this
.Logging
.AddLog(this.GetType().ToString(), ex.Message, DefaultLogTypes.Error, ex);
return ApiUtils.CreateErrorResult<IEnumerable<Item>>(ex);
}
}
}
Other contextual information are also provided:
- TenantId: ID of the Omnia tenant that the current SharePoint site belongs to.
- LoginName: SharePoint loginname of the current user.
- OmniaInstanceMode: The mode that Omnia Foundation is running in, either Tenant or SiteCollectionOnly