public ActionResult <IEnumerable <AzureResourceCommon.Dtos.Resource> > Get() { AzureResourceCommon.Services.ResourceRepository repo = new AzureResourceCommon.Services.ResourceRepository(); AzureResourceCommon.Dtos.Resource[] resources = repo.GetResources(20); return(resources); }
public ActionResult <Resource> Get(int resourceid) { Resource result = null; AzureResourceCommon.Services.ResourceRepository repo = new AzureResourceCommon.Services.ResourceRepository(); result = repo.GetResource(resourceid); return(result); }
public ActionResult <IEnumerable <DailyResourceChanges> > GetChanges() { List <DailyResourceChanges> changes = new List <DailyResourceChanges>(); AzureResourceCommon.Services.ResourceRepository repo = new AzureResourceCommon.Services.ResourceRepository(); AzureResourceCommon.Dtos.Resource[] resources = repo.GetResources(20); foreach (AzureResourceCommon.Dtos.Resource rec in resources) { if (!String.IsNullOrEmpty(rec.Differences)) { DailyResourceChanges dailyChanges = new DailyResourceChanges(); dailyChanges.Id = rec.Id; dailyChanges.Timestamp = rec.Timestamp; // We have changes // First parse resources (big) JObject recJson = JObject.Parse(rec.ResourcesJson); Newtonsoft.Json.Linq.JObject diffJson = Newtonsoft.Json.Linq.JObject.Parse(rec.Differences); int value; foreach (JProperty prop in diffJson["value"]) { if (int.TryParse(prop.Name, out value)) { // We have a change ResourceChanges change = new ResourceChanges(); JObject recDetailJson = (JObject)recJson["value"][value]; change.Namespace = recDetailJson["namespace"].ToString(); change.Differences = prop.Value.ToString(); dailyChanges.Changes.Add(change); } else if (prop.Name == "_t") { if (prop.Value.ToString() == "a") { dailyChanges.Additions = diffJson["value"].Children <JToken>().ToList <JToken>().Count - 1; } else { dailyChanges.Others = diffJson["value"].Children <JToken>().ToList <JToken>().Count - 1; } } } changes.Add(dailyChanges); } } return(changes); }
public static void Run([TimerTrigger("0 0 * * *")] TimerInfo myTimer, TraceWriter log) { string token = GetAzureBearerToken(); string resourceProviders = GetAzureResourceProviders(token); AzureResourceCommon.Services.ResourceRepository repo = new AzureResourceCommon.Services.ResourceRepository(); AzureResourceCommon.Dtos.Resource resource = repo.GetLastResource(); if (resource == null || resource.ResourcesJson != resourceProviders) { string diffs = ""; if (resource != null) { var jdp = new JsonDiffPatch(); var left = JToken.Parse(resource.ResourcesJson); var right = JToken.Parse(resourceProviders); JToken patch = jdp.Diff(left, right); if (patch != null) { diffs = patch.ToString(); } } AzureResourceCommon.Dtos.Resource res = new AzureResourceCommon.Dtos.Resource() { ResourcesJson = resourceProviders, Differences = diffs, Timestamp = DateTime.Now }; // We have resource changes changes repo.InsertResourceJson(res); } //return (new OkObjectResult(resourceProviders)); }
public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, TraceWriter log) { log.Info("C# HTTP trigger function AzureResourceRemoveSubId processed a request."); AzureResourceCommon.Services.ResourceRepository repo = new AzureResourceCommon.Services.ResourceRepository(); string subId = System.Environment.GetEnvironmentVariable("SubscriptionId"); AzureResourceCommon.Dtos.Resource[] resources = repo.GetResources(); foreach (AzureResourceCommon.Dtos.Resource resource in resources) { bool foundMatch = false; if (resource.Differences.Contains(subId)) { foundMatch = true; // Must be corrected, remove subid from diff json resource.Differences = resource.Differences.Replace(subId, "YYYYYYYY-YYYY"); } if (resource.ResourcesJson.Contains(subId)) { foundMatch = true; // Must be corrected, remove subid from resource json resource.ResourcesJson = resource.ResourcesJson.Replace(subId, "YYYYYYYY-YYYY"); } if (foundMatch) { // Update back to DB repo.UpdateResourceJson(resource); } } return(new OkObjectResult("news checked.")); }