Example #1
0
        public async Task <ActionResult> Index()
        {
            return(RedirectToAction("File"));

            var outlookServicesClient = await _factory.CreateOutlookServicesClientWithAsync("Mail");

            //var great = await LookupOneDriveUrl();

            var accessToken = await _factory.GetAccessToken();

            var jwt = new JwtSecurityToken(accessToken);

            var endpointUri = _factory.ServiceEndpointUri;


            Assert.ThrowExceptionIfNull(outlookServicesClient, "Failed to create outlook service client, please ensure you have capbility to access mails");

            var result = await(from i in outlookServicesClient.Me.Folders.GetById("Inbox").Messages
                               orderby i.DateTimeReceived descending
                               select i).Take(10).ExecuteAsync();

            var mailItems = new List <MailItem>();

            foreach (var mail in result.CurrentPage)
            {
                mailItems.Add(new MailItem(mail));
            }

            return(View(mailItems));
        }
Example #2
0
        public async Task <String> SendRequestToAPI(String driveEndpoint, String requestType, String contentType = null, Stream content = null)
        {
            var _factory = new ServiceClientFactory();

            var accessToken = await _factory.GetAccessToken();

            var jwt      = new JwtSecurityToken(accessToken);
            var name     = jwt.Claims.Where(q => q.Type == "unique_name").FirstOrDefault().Value;
            var tenantId = jwt.Claims.Where(q => q.Type == "tid").FirstOrDefault().Value;
            var urlRoot  = jwt.Claims.Where(q => q.Type == "aud").FirstOrDefault().Value;
            var list     = "";

            // Currently using HttpClient but you can check out RestRequest library from Nuget
            // that will help make things easier.
            HttpClient client = new HttpClient();

            // Base address points to {tenant}-my.sharepoint.com
            client.BaseAddress = new Uri(urlRoot);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // Add Authorization header
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

            // Make call to Drive
            //     HttpResponseMessage response = await client.GetAsync(driveEndpoint);
            HttpRequestMessage request = new HttpRequestMessage(
                new HttpMethod(requestType), driveEndpoint);

            if (content != null)
            {
                HttpContent      requestContent = null;
                System.IO.Stream streamContent  = content as System.IO.Stream;
                if (streamContent != null)
                {
                    requestContent = new StreamContent(streamContent);
                    //   requestContent.Headers.ContentType = new MediaTypeHeaderValue(contentType);
                    //    request.Content = requestContent;
                }
            }

            HttpResponseMessage response = client.SendAsync(request).Result;

            if (response.IsSuccessStatusCode)
            {
                // Return json response as string
                list = await response.Content.ReadAsStringAsync();
            }

            //    return (drive);

            return(list);
        }
        public async Task <ActionResult> Index()
        {
            if (Request.IsAuthenticated)
            {
                var _factory = new ServiceClientFactory();

                var accessToken = await _factory.GetAccessToken();

                var jwt   = new JwtSecurityToken(accessToken);
                var name  = jwt.Claims.Where(q => q.Type == "unique_name").FirstOrDefault().Value;
                var msoId = (object)this.Server.UrlEncode(Crypo.EncryptToBase64(name, "SSOUser", "asknlearn"));

                return(Redirect($"{OAuthSettings.LmsHost}{OAuthSettings.LmsUrl}msoID={msoId}"));
            }

            var content = new ContentResult();

            content.Content = "For some reason, the app thinks you're unauthenticated.";

            return(content);
        }