Example #1
0
        public async Task SyncMetricIdeaList()
        {
            var teamService = new TeamsService();
            var teams       = await teamService.GetJoinedTeamsAsync();

            var plannerService = new PlannerService(teamService);

            var allIdeas = new List <Idea>();

            foreach (var team in teams)
            {
                var operation = $"Sync ideas in team {team?.DisplayName}";
                LogService.LogOperationStarted(operation);
                var ideas = (await plannerService.GetIdeasInTeamAsync(team))
                            .OrderBy(idea => idea.Id);
                allIdeas.AddRange(ideas);
                var items = GetMetricIdeaItemsByTeamID(team.Id)
                            .OrderBy(item => item[SPLists.MetricIdeas.Columns.TaskId]);
                try
                {
                    SyncIdeasAndListItems(ideas, items);
                }
                catch (Exception ex)
                {
                    LogService.LogError(ex);
                }
                LogService.LogOperationEnded(operation);
            }

            {
                var operation = $"Sync ideas whose metric is other";
                LogService.LogOperationStarted(operation);
                var items   = GetOtherMetricIdeaItems();
                var ideaIds = items.Select(i => i[SPLists.MetricIdeas.Columns.TaskId] as string).ToArray();
                var ideas   = allIdeas.Where(i => ideaIds.Contains(i.Id));
                SyncIdeasAndListItems(ideas, items);
                LogService.LogOperationEnded(operation);
            }
        }
Example #2
0
 public PlannerService(TeamsService teamService)
 {
     this.teamService = teamService;
 }
Example #3
0
 public PlannerService()
 {
     teamService = new TeamsService();
 }