public static HttpResponseMessage Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, ExecutionContext context, ILogger logger)
        {
            logger.LogInformation("C# HTTP trigger function processed a request.");

            var siteId = Environment.GetEnvironmentVariable("sharePointSite");
            var tenant = Environment.GetEnvironmentVariable("ida:Tenant");

            var keyVaultUrl = Environment.GetEnvironmentVariable("KEYVAULT");

            //We are going to get these from the Key Vault
            var certName = Environment.GetEnvironmentVariable("secretCertName");
            var clientId = Environment.GetEnvironmentVariable("secretCertClientIdKey");

            //Some examples of logging to AppInsights
            logger.LogInformation("101 Azure Function Demo - Logging with ITraceWriter");
            logger.LogTrace("Here is a verbose log message");
            logger.LogWarning("Here is a warning log message");
            logger.LogError("Here is an error log message");
            logger.LogCritical("This is a critical log message => {message}", "We have a big problem");


            // Track an Event in AppInsights
            var evt = new EventTelemetry("Function called");

            UpdateTelemetryContext(evt.Context, context, "CertificateAppOnly");
            telemetryClient.TrackEvent(evt);

            //Get a client context
            var clientContext = HelperSharePoint.GetClientContext(tenant, siteId, clientId, keyVaultUrl, certName, logger);

            Web ccWeb = clientContext.Web;

            clientContext.Load(ccWeb);
            clientContext.ExecuteQuery();

            logger.LogInformation("web title is " + ccWeb.Title);
            logger.LogMetric("TestMetric", 1234);

            return(clientContext == null
                ? req.CreateResponse(HttpStatusCode.BadRequest, "We couldn't get the title of the site")
                : req.CreateResponse(HttpStatusCode.OK, "The title of the web is " + clientContext.Web.Title));
        }
Esempio n. 2
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, ILogger logger)
        {
            logger.LogInformation("C# HTTP trigger function processed a request for testing the web hook.");


            var siteId          = Environment.GetEnvironmentVariable("sharePointSite");
            var listId          = Environment.GetEnvironmentVariable("sharePointListId");
            var tenant          = Environment.GetEnvironmentVariable("ida:Tenant");
            var webHookEndPoint = Environment.GetEnvironmentVariable("webHookEndPoint");

            var keyVaultUrl = Environment.GetEnvironmentVariable("KEYVAULT");
            //Get these from Key Vault
            var clientId = Environment.GetEnvironmentVariable("secretCertClientIdKey");
            var certName = Environment.GetEnvironmentVariable("secretCertName");

            //Authenticate with SharePoint using the certificate
            var authenticationResult = HelperSharePoint.GetAuthenticationResult(tenant, siteId, clientId, keyVaultUrl, certName, logger);

            var result = await HelperWebHooks.AddListWebHookAsync(siteId, listId, webHookEndPoint, authenticationResult.AccessToken, 3);

            return(result == null
                 ? req.CreateResponse(HttpStatusCode.BadRequest, "Couldn't register the web hook")
                 : req.CreateResponse(HttpStatusCode.OK, result));
        }