public async Task CreateAndActivateNewMTSFPlan() { try { Logger.Info("Star Creating Plan"); var plans = await _hubCommunicator.GetPlansByName("MonitorSubmissionTerminalForm", PlanVisibility.Internal); var tokens = await _hubCommunicator.GetTokens(); googleTokens = tokens.Where(t => t.Name == "terminalGoogle").FirstOrDefault(); atlassianTokens = tokens.Where(t => t.Name == "terminalAtlassian").FirstOrDefault(); slackTokens = tokens.Where(t => t.Name == "terminalSlack").FirstOrDefault(); if (plans.Count() == 0) { await ConfigureAndRunPlan(); } else { Logger.Info("Plan already exist"); var plan = plans.FirstOrDefault(); if (plan.SubPlans.FirstOrDefault().Activities.Count < 8) { Logger.Info("Deleting incomplete Plan"); await _hubCommunicator.DeletePlan(plan.Id); await ConfigureAndRunPlan(); } Logger.Info("trying to reapply tokens"); //Reapllying tokens if they were revoked previously await ReApplyTokens(plans.FirstOrDefault()); } } catch (Exception e) { Logger.Error("Couldn't create MonitorTerminalSubmissionForm Plan", e); throw new ApplicationException("Couldn't create MonitorTerminalSubmissionForm Plan", e); } }