Exemplo n.º 1
0
        public static void Init(NameValueCollection appSettings, string appRoot)
        {
            AppRootPath = appRoot;

            //DocDB config
            DocDBRepo.Settings.AppRootPath     = appRoot;
            DocDBRepo.Settings.DocDBUri        = appSettings["DocDBUri"];
            DocDBRepo.Settings.DocDBAuthKey    = appSettings["DocDBAuthKey"];
            DocDBRepo.Settings.DocDBName       = appSettings["DocDBName"];
            DocDBRepo.Settings.DocDBCollection = appSettings["DocDBCollection"];

            //IMPORTANT: Set Regions before setting CurrentRegion
            DocDBRepo.Settings.DocDBRegions       = (appSettings["DocDBRegions"] as string).Split(',');
            DocDBRepo.Settings.DocDBCurrentRegion = Environment.GetEnvironmentVariable("REGION_NAME");

            //Identity config
            LabAdminClientId = appSettings["ida:ClientId"];
            LabAdminSecret   = appSettings["ida:ClientSecret"];
            LabAdminTenantId = appSettings["ida:TenantId"];
            Authority        = "https://login.microsoftonline.com/{0}";
            AdminAuthority   = string.Format(Authority, LabAdminTenantId);

            LabUserClientId        = appSettings["LinkAdminClientId"];
            LabUserSecret          = appSettings["LinkAdminSecret"];
            UserAuthority          = string.Format(Authority, "common");
            AESEncryption.Password = LabAdminSecret;

            StorageConnectionString = appSettings["StorageConnectionString"];
            LabQueueName            = appSettings["LabQueueName"];

            GraphResource = "https://graph.microsoft.com";

            var client = DocDBRepo.Initialize().Result;
        }
        // Please set the following connection strings in app.config for this WebJob to run:
        // AzureWebJobsDashboard and AzureWebJobsStorage
        static void Main()
        {
            DocDBRepo.Settings.DocDBUri     = ConfigurationManager.AppSettings["DocDBUri"];
            DocDBRepo.Settings.DocDBAuthKey = ConfigurationManager.AppSettings["DocDBAuthKey"];
            DocDBRepo.Settings.DocDBName    = ConfigurationManager.AppSettings["DocDBName"];

            var config = new JobHostConfiguration();

            config.StorageConnectionString   = ConfigurationManager.AppSettings["StorageConnectionString"];
            config.DashboardConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];

            //TODO: comment out for production
            config.Queues.BatchSize = 1;

            var client = DocDBRepo.Initialize().Result;

            if (config.IsDevelopment)
            {
                config.UseDevelopmentSettings();
            }

            var host = new JobHost();

            // The following code ensures that the WebJob will be running continuously
            host.RunAndBlock();
        }
Exemplo n.º 3
0
        private static async Task Init(NameValueCollection appSettings, string appRoot)
        {
            //DocDB config
            DocDBRepo.Settings.AppRootPath     = appRoot;
            DocDBRepo.Settings.DocDBUri        = appSettings["DocDBUri"];
            DocDBRepo.Settings.DocDBAuthKey    = appSettings["DocDBAuthKey"];
            DocDBRepo.Settings.DocDBName       = appSettings["DocDBName"];
            DocDBRepo.Settings.DocDBCollection = appSettings["DocDBCollection"];

            //IMPORTANT: Set Regions before setting CurrentRegion
            DocDBRepo.Settings.DocDBRegions       = (appSettings["DocDBRegions"] as string).Split(',');
            DocDBRepo.Settings.DocDBCurrentRegion = Environment.GetEnvironmentVariable("REGION_NAME");

            //Identity config
            Settings.LabAdminClientId = appSettings["ida:ClientId"];
            Settings.LabAdminSecret   = appSettings["ida:ClientSecret"];
            Settings.LabAdminTenantId = appSettings["ida:TenantId"];
            Settings.Authority        = "https://login.microsoftonline.com/{0}";
            Settings.AdminAuthority   = string.Format(Settings.Authority, Settings.LabAdminTenantId);

            Settings.LabUserClientId = appSettings["LinkAdminClientId"];
            Settings.LabUserSecret   = appSettings["LinkAdminSecret"];
            Settings.UserAuthority   = string.Format(Settings.Authority, "common");

            Settings.StorageConnectionString = appSettings["StorageConnectionString"];
            Settings.LabQueueName            = appSettings["LabQueueName"];

            Settings.GraphResource = "https://graph.microsoft.com";

            var client = await DocDBRepo.Initialize();
        }
Exemplo n.º 4
0
        // Please set the following connection strings in app.config for this WebJob to run:
        // AzureWebJobsDashboard and AzureWebJobsStorage
        static void Main()
        {
            _ops = new ServerOp();

            DocDBRepo.Settings.DocDBUri     = ConfigurationManager.AppSettings["DocDBUri"];
            DocDBRepo.Settings.DocDBAuthKey = ConfigurationManager.AppSettings["DocDBAuthKey"];
            DocDBRepo.Settings.DocDBName    = ConfigurationManager.AppSettings["DocDBName"];
            string sbRelayConnectionString = ConfigurationManager.AppSettings["SBRelayConnectionString"];

            var config = new JobHostConfiguration();

            config.StorageConnectionString   = ConfigurationManager.AppSettings["StorageConnectionString"];
            config.DashboardConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];

            if (config.IsDevelopment)
            {
                config.UseDevelopmentSettings();
            }

            var client = DocDBRepo.Initialize().Result;

            _relayServer = new OrgRelayServer(sbRelayConnectionString);
            _relayServer.IncomingMessage += RelayServer_IncomingMessage;

            _relayServer.Start();

            var host = new JobHost(config);

            // The following code ensures that the WebJob will be running continuously
            host.RunAndBlock();
        }
Exemplo n.º 5
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     DocDBRepo <UltraReading> .Initialize();
 }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            Settings.SiteName                   = ConfigurationManager.AppSettings["SiteName"];
            Settings.SigningCertificate         = ConfigurationManager.AppSettings["SigningCertificate"];
            Settings.SigningCertificatePassword = ConfigurationManager.AppSettings["SigningCertificatePassword"];
            Settings.Port          = ConfigurationManager.AppSettings["Port"];
            Settings.HttpLocalhost = ConfigurationManager.AppSettings["HttpLocalhost"];
            Settings.STSApiKey     = ConfigurationManager.AppSettings["STSApiKey"];
            Settings.AdminSiteUrl  = ConfigurationManager.AppSettings["AdminSiteUrl"];
            Settings.IssuerUri     = ConfigurationManager.AppSettings["IssuerUri"];

            DocDBRepo.Settings.DocDBUri     = ConfigurationManager.AppSettings["DocDBUri"];
            DocDBRepo.Settings.DocDBAuthKey = ConfigurationManager.AppSettings["DocDBAuthKey"];
            DocDBRepo.Settings.DocDBName    = ConfigurationManager.AppSettings["DocDBName"];
            var client = DocDBRepo.Initialize().Result;
        }
Exemplo n.º 7
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AntiForgeryConfig.UniqueClaimTypeIdentifier = "http://schemas.microsoft.com/identity/claims/objectidentifier";

            try
            {
                DocDBRepo.Settings.DocDBUri     = ConfigurationManager.AppSettings["DocDBUri"];
                DocDBRepo.Settings.DocDBAuthKey = ConfigurationManager.AppSettings["DocDBAuthKey"];
                DocDBRepo.Settings.DocDBName    = ConfigurationManager.AppSettings["DocDBName"];

                Settings.StorageConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];
                Settings.STSApiKey    = ConfigurationManager.AppSettings["STSApiKey"];
                Settings.AdminSiteUrl = ConfigurationManager.AppSettings["AdminSiteUrl"];
                Settings.AdminApiKey  = ConfigurationManager.AppSettings["AdminApiKey"];

                Settings.ClientId     = ConfigurationManager.AppSettings["ida:ClientId"];
                Settings.ClientSecret = ConfigurationManager.AppSettings["ida:ClientSecret"];
                Settings.TenantId     = ConfigurationManager.AppSettings["ida:TenantId"];

                //Zip init
                ZipCopy.InitZip(Settings.AppRootPath);
                Settings.CurrSiteScriptVersion = ZipCopy.GetCurrSiteVersion(Path.Combine(Settings.AppRootPath, "Files"));

                var client = DocDBRepo.Initialize().Result;
            }
            catch (Exception ex)
            {
                Logging.WriteToAppLog("Error during site initialization", System.Diagnostics.EventLogEntryType.Error, ex);
                throw;
            }
        }
Exemplo n.º 8
0
        public async Task <ActionResult> IndexAsync()
        {
            var items = await DocDBRepo <UltraReading> .GetItemsAsync(r => r.Reading != string.Empty);

            return(View(items.Reverse().Take(15)));
        }
Exemplo n.º 9
0
        protected void Application_Start()
        {
            try
            {
                //DocDB config

                DocDBRepo.Settings.DocDBUri        = ConfigurationManager.AppSettings["DocDBUri"];
                DocDBRepo.Settings.DocDBAuthKey    = ConfigurationManager.AppSettings["DocDBAuthKey"];
                DocDBRepo.Settings.DocDBName       = ConfigurationManager.AppSettings["DocDBName"];
                DocDBRepo.Settings.DocDBCollection = ConfigurationManager.AppSettings["DocDBCollection"];

                var client = DocDBRepo.Initialize().Result;
                var s      = client.AuthKey;

                ControllerBuilder.Current.DefaultNamespaces.Add("B2BPortal.Controllers");
                AreaRegistration.RegisterAllAreas();
                GlobalConfiguration.Configure(WebApiConfig.Register);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
                AntiForgeryConfig.UniqueClaimTypeIdentifier = "http://schemas.microsoft.com/identity/claims/objectidentifier";

                //Settings
                var isConfig = Settings.LoadCurrSiteConfig();
                if (isConfig)
                {
                    //if new site, no config but invites are disabled until config is complete
                    AdalUtil.Settings.SiteRedemptionSettings = Settings.CurrSiteConfig.SiteRedemptionSettings;
                    MailSender.MailFrom = Settings.CurrSiteConfig.SiteRedemptionSettings.InviterResponseEmailAddr;
                }

                AdalUtil.Settings.AADInstanceLocal = ConfigurationManager.AppSettings["ida:AADInstanceLocal"];
                AdalUtil.Settings.AADInstanceMulti = ConfigurationManager.AppSettings["ida:AADInstanceMulti"];
                AdalUtil.Settings.TenantID         = ConfigurationManager.AppSettings["ida:TenantId"];
                AdalUtil.Settings.Tenant           = ConfigurationManager.AppSettings["ida:Tenant"];

                AdalUtil.Settings.AppClientId_Admin       = ConfigurationManager.AppSettings["ida:ClientId_Admin"];
                AdalUtil.Settings.AppClientSecret_Admin   = ConfigurationManager.AppSettings["ida:ClientSecret_Admin"];
                AdalUtil.Settings.AppClientId_Preauth     = ConfigurationManager.AppSettings["ida:ClientId_PreAuth"];
                AdalUtil.Settings.AppClientSecret_Preauth = ConfigurationManager.AppSettings["ida:ClientSecret_PreAuth"];

                AdalUtil.Settings.GraphApiVersion = ConfigurationManager.AppSettings["GraphApiVersion"];

                AdalUtil.Settings.InvitationEmailSubject  = ConfigurationManager.AppSettings["InvitationEmailSubject"];
                AdalUtil.Settings.DefaultBodyTemplateName = ConfigurationManager.AppSettings["DefaultBodyTemplateName"];
                AdalUtil.Settings.InviterRoleNames        = (ConfigurationManager.AppSettings["InviterRoleNames"] as string).Split(',');
                AdalUtil.Settings.AssignedInviterRole     = ConfigurationManager.AppSettings["AssignedInviterRole"];

                //SMTP config
                MailSender.MailEnabled    = (ConfigurationManager.AppSettings["MailEnabled"] == "1");
                MailSender.LogoPath       = Server.MapPath(ConfigurationManager.AppSettings["MailLogoPath"]);
                MailSender.MailTemplate   = Settings.GetMailTemplate(ConfigurationManager.AppSettings["MailTemplateName"]);
                MailSender.MailServer     = ConfigurationManager.AppSettings["MailServer"];
                MailSender.MailServerPort = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
                MailSender.SMTPLogin      = ConfigurationManager.AppSettings["SMTPLogin"];
                MailSender.SMTPPassword   = ConfigurationManager.AppSettings["SMTPPassword"];

                Settings.UseSMTP          = (!string.IsNullOrEmpty(MailSender.MailServer));
                AdalUtil.Settings.UseSMTP = Settings.UseSMTP;

                /*
                 * TODO: Prefetching the app token here because initializing this library during admin
                 * authentication is timing out/failing.
                 * don't know if this is due to the api call or spinning up this code
                 * see AdalUtil.CallGraph...
                 */
                AdalUtil.AuthenticateApp();
            }
            catch (Exception ex)
            {
                Logging.WriteToAppLog("Error during site initialization", System.Diagnostics.EventLogEntryType.Error, ex);
                throw;
            }
        }
Exemplo n.º 10
0
        protected void Application_Start()
        {
            try
            {
                //DocDB config
                DocDBRepo.Settings.DocDBUri        = ConfigurationManager.AppSettings["DocDBUri"];
                DocDBRepo.Settings.DocDBAuthKey    = ConfigurationManager.AppSettings["DocDBAuthKey"];
                DocDBRepo.Settings.DocDBName       = ConfigurationManager.AppSettings["DocDBName"];
                DocDBRepo.Settings.DocDBCollection = ConfigurationManager.AppSettings["DocDBCollection"];

                var client = DocDBRepo.Initialize().Result;
                var s      = client.AuthKey;

                ControllerBuilder.Current.DefaultNamespaces.Add("B2BPortal.Controllers");
                AreaRegistration.RegisterAllAreas();
                GlobalConfiguration.Configure(WebApiConfig.Register);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
                AntiForgeryConfig.UniqueClaimTypeIdentifier = "http://schemas.microsoft.com/identity/claims/objectidentifier";

                //Settings
                bool isConfig = false;
                var  task     = Task.Run(async() => {
                    isConfig = await SiteConfigRules.LoadCurrSiteConfig();
                });
                task.Wait();

                if (isConfig)
                {
                    //if new site, no config but invites are disabled until config is complete
                    MailSender.MailFrom = Settings.CurrSiteConfig.SiteRedemptionSettings.InviterResponseEmailAddr;
                }

                Settings.AADInstanceLocal = ConfigurationManager.AppSettings["ida:AADInstanceLocal"];
                Settings.AADInstanceMulti = ConfigurationManager.AppSettings["ida:AADInstanceMulti"];
                Settings.TenantID         = ConfigurationManager.AppSettings["ida:TenantId"];
                Settings.Tenant           = ConfigurationManager.AppSettings["ida:Tenant"];
                Settings.AppRootPath      = HttpRuntime.AppDomainAppPath;

                Settings.AppClientId_Admin     = ConfigurationManager.AppSettings["ida:ClientId_Admin"];
                Settings.AppClientSecret_Admin = ConfigurationManager.AppSettings["ida:ClientSecret_Admin"];
                //using same client password for token cache encryption
                AESEncryption.Password = Settings.AppClientSecret_Admin;

                Settings.AppClientId_Preauth     = ConfigurationManager.AppSettings["ida:ClientId_PreAuth"];
                Settings.AppClientSecret_Preauth = ConfigurationManager.AppSettings["ida:ClientSecret_PreAuth"];

                Settings.GraphApiVersion = ConfigurationManager.AppSettings["GraphApiVersion"];

                Settings.DefaultSubjectTemplateName = ConfigurationManager.AppSettings["DefaultSubjectTemplateName"];
                Settings.DefaultBodyTemplateName    = ConfigurationManager.AppSettings["DefaultBodyTemplateName"];
                Settings.InviterRoleNames           = (ConfigurationManager.AppSettings["InviterRoleNames"] as string).Split(',');
                Settings.AssignedInviterRole        = ConfigurationManager.AppSettings["AssignedInviterRole"];

                //SMTP config
                MailSender.MailEnabled    = (ConfigurationManager.AppSettings["MailEnabled"] == "1");
                MailSender.MailTemplate   = MailSender.GetTemplateContents(ConfigurationManager.AppSettings["MailTemplateName"]);
                MailSender.MailServer     = ConfigurationManager.AppSettings["MailServer"];
                MailSender.MailServerPort = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
                MailSender.SMTPLogin      = ConfigurationManager.AppSettings["SMTPLogin"];
                MailSender.SMTPPassword   = ConfigurationManager.AppSettings["SMTPPassword"];

                Settings.UseSMTP = (!string.IsNullOrEmpty(MailSender.MailServer));
                StorageRepo.StorageConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];

                /*
                 * TODO: Prefetching the app token here because initializing this library during admin
                 * authentication is timing out/failing.
                 * don't know if this is due to the api call or spinning up this code
                 * see AdalUtil.CallGraph...
                 */
                AdalUtil.AuthenticateApp();

                AdalUtil.GetTenantBranding();
                if (Settings.Branding.TileLogo.Image == null)
                {
                    //assign default logo
                    var imgPath = Path.Combine(Settings.AppRootPath, "Content\\Images\\AADB2BTile.png");
                    var img     = File.ReadAllBytes(imgPath);
                    Settings.Branding.TileLogo.Image = img;
                }
                MailSender.Logo = Settings.Branding.TileLogo.Image;
            }
            catch (Exception ex)
            {
                Logging.WriteToAppLog("Error during site initialization", System.Diagnostics.EventLogEntryType.Error, ex);
                throw;
            }
        }
Exemplo n.º 11
0
        private static void Setup()
        {
            try
            {
                //DocDB config
                DocDBRepo.Settings.DocDBUri        = ConfigurationManager.AppSettings["DocDBUri"];
                DocDBRepo.Settings.DocDBAuthKey    = ConfigurationManager.AppSettings["DocDBAuthKey"];
                DocDBRepo.Settings.DocDBName       = ConfigurationManager.AppSettings["DocDBName"];
                DocDBRepo.Settings.DocDBCollection = ConfigurationManager.AppSettings["DocDBCollection"];

                var client = DocDBRepo.Initialize().Result;
                var s      = client.AuthKey;

                bool isConfig = false;
                var  task     = Task.Run(async() => {
                    isConfig = await SiteConfigRules.LoadCurrSiteConfig();
                });
                task.Wait();

                if (isConfig)
                {
                    //if new site, no config but invites are disabled until config is complete
                    Settings.CurrSiteConfig.SiteRedemptionSettings = Settings.CurrSiteConfig.SiteRedemptionSettings;
                    Settings.CurrSiteConfig.InvitingOrg            = Settings.CurrSiteConfig.InvitingOrg;
                    MailSender.MailFrom = Settings.CurrSiteConfig.SiteRedemptionSettings.InviterResponseEmailAddr;
                }

                Settings.AppRootPath = Environment.CurrentDirectory;

                Settings.AADInstanceLocal = ConfigurationManager.AppSettings["ida:AADInstanceLocal"];
                Settings.AADInstanceMulti = ConfigurationManager.AppSettings["ida:AADInstanceMulti"];
                Settings.TenantID         = ConfigurationManager.AppSettings["ida:TenantId"];
                Settings.Tenant           = ConfigurationManager.AppSettings["ida:Tenant"];

                Settings.AppClientId_Admin     = ConfigurationManager.AppSettings["ida:ClientId_Admin"];
                Settings.AppClientSecret_Admin = ConfigurationManager.AppSettings["ida:ClientSecret_Admin"];
                //using same client password for token cache encryption
                AESEncryption.Password = Settings.AppClientSecret_Admin;

                Settings.AppClientId_Preauth     = ConfigurationManager.AppSettings["ida:ClientId_PreAuth"];
                Settings.AppClientSecret_Preauth = ConfigurationManager.AppSettings["ida:ClientSecret_PreAuth"];

                Settings.GraphApiVersion = ConfigurationManager.AppSettings["GraphApiVersion"];

                Settings.InviterRoleNames    = (ConfigurationManager.AppSettings["InviterRoleNames"] as string).Split(',');
                Settings.AssignedInviterRole = ConfigurationManager.AppSettings["AssignedInviterRole"];

                //these are the mail content templates
                Settings.DefaultSubjectTemplateName = ConfigurationManager.AppSettings["DefaultSubjectTemplateName"];
                Settings.DefaultBodyTemplateName    = ConfigurationManager.AppSettings["DefaultBodyTemplateName"];

                //SMTP config
                MailSender.MailEnabled = (ConfigurationManager.AppSettings["MailEnabled"] == "1");
                //this is the mail formatting template - subject and body are injected into this
                MailSender.MailTemplate   = MailSender.GetTemplateContents(ConfigurationManager.AppSettings["MailTemplateName"]);
                MailSender.MailServer     = ConfigurationManager.AppSettings["MailServer"];
                MailSender.MailServerPort = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
                MailSender.SMTPLogin      = ConfigurationManager.AppSettings["SMTPLogin"];
                MailSender.SMTPPassword   = ConfigurationManager.AppSettings["SMTPPassword"];

                StorageRepo.StorageConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];
                Settings.UseSMTP = (!string.IsNullOrEmpty(MailSender.MailServer));

                /*
                 * TODO: Prefetching the app token here because initializing this library during admin
                 * authentication is timing out/failing.
                 * don't know if this is due to the api call or spinning up this code
                 * see AdalUtil.CallGraph...
                 */
                AdalUtil.AuthenticateApp();
                AdalUtil.GetTenantBranding();

                if (Settings.Branding.TileLogo.Image == null)
                {
                    //assign default logo
                    var imgPath = Path.Combine(Settings.AppRootPath, "Content\\Images\\AADB2BTile.png");
                    var img     = File.ReadAllBytes(imgPath);
                    Settings.Branding.TileLogo.Image = img;
                }
                MailSender.Logo = Settings.Branding.TileLogo.Image;
            }
            catch (Exception ex)
            {
                Logging.WriteToAppLog("Error during site initialization", System.Diagnostics.EventLogEntryType.Error, ex);
                throw;
            }
        }