public async Task <ActionResult> CreateSubscription() { if (User.Identity.IsAuthenticated) { string identifier = User.FindFirst(Startup.ObjectIdentifierType)?.Value; var graphClient = _graphSdkHelper.GetAuthenticatedClient(identifier); Subscription createdSubscription = null; /// <exercise_hint> /// Some hints that can help you. /// Creating subscription https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/subscription_post_subscriptions /// </exercise_hint> /// ADD CODE HERE SubscriptionViewModel viewModel = new SubscriptionViewModel { Subscription = JsonConvert.DeserializeObject <Models.Subscription>(JsonConvert.SerializeObject(createdSubscription)) }; SubscriptionStore.SaveSubscriptionInfo(viewModel.Subscription.Id, viewModel.Subscription.ClientState, User.FindFirst(Startup.ObjectIdentifierType)?.Value, User.FindFirst(Startup.TenantIdType)?.Value); subscriptionId = viewModel.Subscription.Id; return(View("Subscription", createdSubscription)); } return(View("Subscription", null)); }
public async Task <ActionResult> CreateSubscription() { if (User.Identity.IsAuthenticated) { string identifier = User.FindFirst(Startup.ObjectIdentifierType)?.Value; var graphClient = _graphSdkHelper.GetAuthenticatedClient(identifier); Subscription createdSubscription = null; Subscription subscription = new Subscription { Resource = "me/messages", ChangeType = "created,updated", NotificationUrl = GraphAuthProvider.GetNotificationUrl(), ClientState = Guid.NewGuid().ToString(), ExpirationDateTime = DateTime.UtcNow + new TimeSpan(0, 0, 15, 0) }; try { createdSubscription = await graphClient.Subscriptions.Request().AddAsync(subscription); } catch (ServiceException e) { string message = e.Message; return(RedirectToAction("Index", "Error", new { message = e.Message, debug = e.Message })); } SubscriptionViewModel viewModel = new SubscriptionViewModel { Subscription = JsonConvert.DeserializeObject <Models.Subscription>(JsonConvert.SerializeObject(createdSubscription)) }; SubscriptionStore.SaveSubscriptionInfo(viewModel.Subscription.Id, viewModel.Subscription.ClientState, User.FindFirst(Startup.ObjectIdentifierType)?.Value, User.FindFirst(Startup.TenantIdType)?.Value); subscriptionId = viewModel.Subscription.Id; return(View("Subscription", createdSubscription)); } return(View("Subscription", null)); }