public Response Toggle(IssToggleConfig issToggleConfig) { var response = new Response(); try { var mgr = new ServerManager(); var pools = mgr.ApplicationPools.Where(app => issToggleConfig.AppPools.Contains(app.Name)); foreach (var pool in pools) { var newState = issToggleConfig.Condition ? pool.Stop() : pool.Start(); } var state = issToggleConfig.Condition ? "stopped" : "started"; response.AddSuccessNotification($"Application pools {state} successfuly."); return(response); } catch (Exception ex) { Log.Error(ex.Message); response.AddErrorNotification(ex.Message, ex.StackTrace); return(response); } }
public Response WhitelistToggle(IssToggleConfig issToggleConfig) { var response = new Response(); try { var whitelistFile = ConfigurationManager.AppSettings["WhitelistXmlPath"]; var whitelist = XDocument.Load(whitelistFile); var buildsNode = whitelist.Descendants("builds").First(); if (!issToggleConfig.Condition) { foreach (var appPool in issToggleConfig.AppPools) { var poolElement = new XElement("app"); poolElement.SetAttributeValue("value", appPool); buildsNode.Add(poolElement); } } else { var builds = buildsNode.Descendants("app") .Where(x => issToggleConfig.AppPools.Contains(x.Attribute("value")?.Value)).ToList(); foreach (var build in builds) { build.Remove(); } } using (var file = new StreamWriter(whitelistFile)) { whitelist.Save(file); } //if (application.Name.EndsWith("-O")) //{ // var oracleInstances = GetAllOracleInstances(); // var instance = oracleInstances.FirstOrDefault(i => i.CurrentBuildName == application.Name.Replace("-O", "")); // if (instance != null) // { // SetReserved(new OracleInstanceReservationRequest // { // Id = instance.Id, // Reserve = true // }); // } //} var function = issToggleConfig.Condition ? "un" : ""; response.AddSuccessNotification($"Application {function}whitelisted successfuly."); return(response); } catch (Exception ex) { Log.Error(ex.Message); response.AddErrorNotification(ex.Message, ex.StackTrace); return(response); } }