private static async Task <SharePointList> CreateChallengingPassengersListAsync(GraphService graphClient, string groupId, string channelId) { // Get the team site var teamSite = await graphClient.GetTeamSiteAsync(groupId); var challengingPassengers = new SharePointList { DisplayName = "Challenging Passengers", Columns = new List <ColumnDefinition>() { new ColumnDefinition { Name = "Name", Text = new TextColumn() }, new ColumnDefinition { Name = "SeatNumber", Text = new TextColumn() }, new ColumnDefinition { Name = "Notes", Text = new TextColumn() } } }; // Create the list var createdList = await graphClient.CreateSharePointListAsync(teamSite.Id, challengingPassengers); if (createTabs) { // Add the list as a team tab var listTab = new TeamsChannelTab { Name = "Challenging Passengers", TeamsAppId = "com.microsoft.teamspace.tab.web", Configuration = new TeamsChannelTabConfiguration { ContentUrl = createdList.WebUrl, WebsiteUrl = createdList.WebUrl } }; await graphClient.AddTeamChannelTab(groupId, channelId, listTab); } return(createdList); }
private static async Task CreatePreflightPlanAsync(GraphService graphClient, string groupId, string channelId, DateTimeOffset departureTime) { // Create a "Pre-flight checklist" plan var preFlightCheckList = new Plan { Title = "Pre-flight Checklist", Owner = groupId }; var createdPlan = await graphClient.CreatePlanAsync(preFlightCheckList); logger.Info("Create plan"); // Create buckets var toDoBucket = new Bucket { Name = "To Do", PlanId = createdPlan.Id }; var createdToDoBucket = await graphClient.CreateBucketAsync(toDoBucket); var completedBucket = new Bucket { Name = "Completed", PlanId = createdPlan.Id }; var createdCompletedBucket = await graphClient.CreateBucketAsync(completedBucket); // Create tasks in to-do bucket var preFlightInspection = new PlannerTask { Title = "Perform pre-flight inspection of aircraft", PlanId = createdPlan.Id, BucketId = createdToDoBucket.Id, DueDateTime = departureTime.ToUniversalTime() }; await graphClient.CreatePlannerTaskAsync(preFlightInspection); var ensureFoodBevStock = new PlannerTask { Title = "Ensure food and beverages are fully stocked", PlanId = createdPlan.Id, BucketId = createdToDoBucket.Id, DueDateTime = departureTime.ToUniversalTime() }; await graphClient.CreatePlannerTaskAsync(ensureFoodBevStock); if (createTabs) { // Add planner tab to General channel var plannerTab = new TeamsChannelTab { Name = "Pre-flight Checklist", TeamsAppId = "com.microsoft.teamspace.tab.planner", Configuration = new TeamsChannelTabConfiguration { EntityId = createdPlan.Id, ContentUrl = $"https://tasks.office.com/{tenantName}/Home/PlannerFrame?page=7&planId={createdPlan.Id}&auth_pvr=Orgid&auth_upn={{upn}}&mkt={{locale}}", RemoveUrl = $"https://tasks.office.com/{tenantName}/Home/PlannerFrame?page=13&planId={createdPlan.Id}&auth_pvr=Orgid&auth_upn={{upn}}&mkt={{locale}}", WebsiteUrl = $"https://tasks.office.com/{tenantName}/Home/PlanViews/{createdPlan.Id}" } }; await graphClient.AddTeamChannelTab(groupId, channelId, plannerTab); } }