public AseApiRecord Get(string aseName) { // download blob ICloudBlob blob; try { blob = _blobContainer.GetBlobReferenceFromServer(aseName); } catch (StorageException ex) when(ex.Message.Equals("The specified blob does not exist.")) { // blob does not exist, do whatever you need here return(null); } Stream target = new MemoryStream(); blob.DownloadToStream(target); target.Position = 0; StreamReader reader = new StreamReader(target); string text = reader.ReadToEnd(); // deserialize into AseApiRecord AseApiRecord record = JsonConvert.DeserializeObject <AseApiRecord>(text); return(record); }
public void Notify(AseApiRecord record) { RestClient restClient = new RestClient(_webhookUrl); var request = new RestRequest(Method.POST); request.RequestFormat = DataFormat.Json; request.AddJsonBody(record); var response = restClient.Execute(request); }
public void Save(string aseName, AseApiRecord record) { // serialize and convert to byte array string json = JsonConvert.SerializeObject(record); byte[] bytes = Encoding.ASCII.GetBytes(json); ICloudBlob blob = _blobContainer.GetBlockBlobReference(aseName); // delete if previously exists blob.DeleteIfExists(DeleteSnapshotsOption.IncludeSnapshots); // upload blob.UploadFromByteArray(bytes, 0, bytes.Length); blob.Properties.ContentType = "ByteArray"; blob.SetProperties(); }
public AseApiRecord GetManagementIps(string aseName) { var managementApiUrl = string.Format("https://management.azure.com/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Web/hostingEnvironments/{2}/inboundnetworkdependenciesendpoints?api-version=2016-09-01", _subscriptionId, _resourceGroup, aseName); // Authenticate with Azure AD var token = GetAccessToken(); RestClient restClient = new RestClient(managementApiUrl); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer " + token); var response = restClient.Execute(request); var r = JsonConvert.DeserializeObject <AseMgmtApiResult>(response.Content); AseApiRecord asmNode = r.value.Find(x => x.description.Equals("App Service management")); return(asmNode); }