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); } }
private async Task RemoveInactiveExistingPlans(IHubCommunicator hubCommunicator, string plan_name, AuthorizationToken authToken) { try { var existingPlans = (await hubCommunicator.GetPlansByName(plan_name, PlanVisibility.Internal)).ToList(); if (existingPlans.Count > 0) { //active MADSE plans are likely related to another DS account var plansForRemoval = existingPlans .Where(val => (val.PlanState == PlanState.IntToString(PlanState.Inactive)) || //or all from above !(val.SubPlans.Any() && val.SubPlans.ElementAt(0).Activities.Any() && val.SubPlans.ElementAt(0).Activities[1].ActivityTemplate.Name == "Save_All_Payload_To_Fr8_Warehouse")).ToList(); foreach (var plan in plansForRemoval) { await hubCommunicator.DeletePlan(plan.Id); } Logger.Info($"Removed {plansForRemoval.Count} obsolete MADSE plan"); } } catch (Exception exc) { Logger.Info("Failed to remove obsolete MADSE plan"); } }