private async Task SaveIdea(IDialogContext context, IAwaitable <GraphServiceClient> result) { var planService = new PlannerService(await result); var ideaService = new IdeaService(await result); var plan = await planService.GetTeamPlanAsync(Team); if (plan == null) { throw new ApplicationException($"Could not found plan named '{Team.DisplayName}'"); } var plannerTask = await ideaService.CreateAsync(plan.Id, idea.Title, idea.StartDate, idea.Owners.Select(i => i.Id).FirstOrDefault(), idea.Description); var plannerTaskUrl = ideaService.GetIdeaUrl(Team.Id, plan.Id, plannerTask.Id); try { var clientContext = await AuthenticationHelper.GetAppOnlySharePointClientContextAsync(); var metricsService = new MetricsService(clientContext); await metricsService.CreateMetricIdeaAsync(metric.Id, plannerTask, Constants.IdeasPlan.Buckets.NewIdea, plannerTaskUrl); } catch (Exception ex) { await context.SayAsync("Failed to add item to MetricIdea list: " + ex.Message); } await context.SayAsync("Idea created."); context.Done(idea); }
private async Task SaveIdea(IDialogContext context, IAwaitable <GraphServiceClient> result) { var planService = new PlannerService(await result); var ideaService = new IdeaService(await result); var plan = await planService.GetTeamPlanAsync(Team); if (plan == null) { throw new ApplicationException($"Could not found plan named '{Team.DisplayName}'"); } var plannerTask = await ideaService.CreateAsync(plan.Id, idea.Title, idea.StartDate, idea.Owners.Select(i => i.Id).FirstOrDefault(), idea.Description); var plannerTaskUrl = ideaService.GetIdeaUrl(Team.Id, plan.Id, plannerTask.Id); try { var clientContext = await AuthenticationHelper.GetAppOnlySharePointClientContextAsync(); var metricsService = new MetricsService(clientContext); await metricsService.CreateMetricIdeaAsync(metric.Id, plannerTask, Constants.IdeasPlan.Buckets.NewIdea, plannerTaskUrl); } catch (Exception ex) { await context.SayAsync("Failed to add item to MetricIdea list: " + ex.Message); } await context.SayAsync("Idea created."); //var viewAction = new CardAction(ActionTypes.OpenUrl, "View", value: plannerTaskUrl); //var heroCard = new HeroCard( // text: "Idea created.", // buttons: new List<CardAction> { viewAction }); //var message = context.MakeMessage(); //message.Attachments.Add(heroCard.ToAttachment()); //await context.PostAsync(message); context.Done(idea); }