blob: e521ce4104f3152ca02090fec49937b7c1f5cef1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
using Microsoft.Azure.Management.AppService.Fluent;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.AzureUtils;
using Tango.AzureUtils.Deployment;
using Tango.Core;
public static class ExtensionMethods
{
public static async Task<MachineServiceSettings> GetMachineServiceSettingsAsync(this IWebAppBase app, bool throwOnMissing = true)
{
MachineServiceSettings settings = new MachineServiceSettings();
var s = await app.GetAppSettingsAsync();
foreach (var prop in typeof(MachineServiceSettings).GetProperties())
{
if (s.ContainsKey(prop.Name))
{
prop.SetValue(settings, s[prop.Name].Value);
}
else if (throwOnMissing)
{
throw new KeyNotFoundException($"Missing application setting '{prop.Name}' on '{app.Name}'.");
}
else
{
prop.SetValue(settings, "N/A");
}
}
return settings;
}
public static DataSource ToDataSource(this MachineServiceSettings settings)
{
DataSource dataSource = new DataSource();
dataSource.Type = DataSourceType.SQLServer;
dataSource.Address = settings.DB_ADDRESS;
dataSource.Catalog = settings.DB_CATALOG;
dataSource.UserName = settings.DB_USER_NAME;
dataSource.Password = settings.DB_PASSWORD;
dataSource.IntegratedSecurity = false;
return dataSource;
}
public static String GetSharedAccessUrl(this CloudBlobContainer container)
{
String sas = container.GetSharedAccessSignature(new Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPolicy()
{
Permissions = SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.List | SharedAccessBlobPermissions.Delete | SharedAccessBlobPermissions.Add,
});
sas = new Uri(container.Uri + sas).ToString();
return sas;
}
}
|