aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Scripts/Account
ModeNameSize
-rw-r--r--Login.js1689logstatsplain
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;
    }
}