Esempio n. 1
0
        public override bool OnStart()
        {
            ServicePointManager.DefaultConnectionLimit = 64;
            ServicePointManager.Expect100Continue      = false;
            ServicePointManager.UseNagleAlgorithm      = false;

            #region Launch silo in separate AppDomain

            var dataConnectionString     = RoleEnvironment.GetConfigurationSettingValue("DataConnectionString");
            var orleansSiloConfiguration = File.ReadAllText("OrleansConfiguration.xml").Replace(
                "XXXDataConnectionStringValueXXX", dataConnectionString);
            this.siloHost = new SiloHost();
            this.siloHost.StartLobbyServiceSiloAppDomain(orleansSiloConfiguration);

            #endregion

            Trace.TraceInformation("LobbyServiceInstanceId " + this.SharedSettings.InstanceId);
            Trace.TraceInformation("Settings.IPEndPoint    " + this.LobbyServiceSettings.IPEndPoint.ToString());

            if (!OrleansAzureClient.IsInitialized)
            {
                OrleansAzureClient.Initialize("ClientConfiguration.xml");
            }

            var server = new AsyncServerHost(this.LobbyServiceSettings.IPEndPoint);
            this.lobbyServerImpl = cc.GetExportedValue <LobbyServerImpl>();
            this.lobbyTask       = server.Start(lobbyServerImpl, cts.Token);

            return(true);
        }
Esempio n. 2
0
        static async Task DoIt3()
        {
            var gc = new OrleansAzureClient(ShipHubCloudConfiguration.Instance.DeploymentId, ShipHubCloudConfiguration.Instance.DataConnectionString);

            var github = await gc.GetGrain <IGitHubActor>(87309); // kogir

            var repoFullName = "realartists/shiphub-server";
            var prs          = new[] { 147, 164, 166 };

            Console.WriteLine("[q]: Quit, [g]: Make GraphQL request");
            ConsoleKeyInfo keyInfo;

            while ((keyInfo = Console.ReadKey(true)).Key != ConsoleKey.Q)
            {
                switch (keyInfo.Key)
                {
                case ConsoleKey.G:
                    Console.WriteLine($"[{DateTimeOffset.Now}]: Making query on {repoFullName}.");
                    var resp = await github.PullRequestReviews(repoFullName, prs);

                    if (resp.IsOk)
                    {
                        Console.WriteLine(resp.Result.SerializeObject(Formatting.Indented));
                    }
                    break;
                }
            }
        }
Esempio n. 3
0
        static Container CreateContainer(IDetailedExceptionLogger detailedLogger)
        {
            Container container = null;

            try {
                container = new Container();

                // ShipHub Configuration
                var config = ShipHubCloudConfiguration.Instance;
                container.RegisterSingleton(config);

                // AutoMapper
                container.RegisterSingleton(() => {
                    var mapperConfig = new MapperConfiguration(cfg => {
                        cfg.AddProfile <GitHubToDataModelProfile>();
                    });
                    return(mapperConfig.CreateMapper());
                });

                // Service Bus
                container.RegisterSingleton <IServiceBusFactory>(() => {
                    // HACK: This is gross
                    var sbf = new ServiceBusFactory();
                    sbf.Initialize().GetAwaiter().GetResult();
                    return(sbf);
                });

                // Orleans
                container.RegisterSingleton <IAsyncGrainFactory>(() => {
                    var factory = new OrleansAzureClient(config.DeploymentId, config.DataConnectionString);
                    factory.Configuration.DefaultTraceLevel = Orleans.Runtime.Severity.Error;
                    return(factory);
                });

                // Queue Client
                container.RegisterSingleton <IShipHubQueueClient, ShipHubQueueClient>();

                // IDetailedExceptionLogger
                container.RegisterSingleton(() => detailedLogger);

                // ChargeBee
                var chargeBeeHostAndApiKey = ShipHubCloudConfiguration.Instance.ChargeBeeHostAndKey;
                if (!chargeBeeHostAndApiKey.IsNullOrWhiteSpace())
                {
                    var parts = chargeBeeHostAndApiKey.Split(':');
                    container.RegisterSingleton(() => new cb.ChargeBeeApi(parts[0], parts[1]));
                }

                container.Verify();
            } catch {
                if (container != null)
                {
                    container.Dispose();
                    throw;
                }
            }

            return(container);
        }
Esempio n. 4
0
        static void InitializeOrleansClient()
        {
            var clientConfigFile = AzureConfigUtils.ClientConfigFileLocation;

            if (!clientConfigFile.Exists)
            {
                throw new FileNotFoundException(clientConfigFile.FullName);
            }

            OrleansAzureClient.Initialize(clientConfigFile);
        }
Esempio n. 5
0
 public static void EnsureOrleansClientInitialized()
 {
     if (!OrleansAzureClient.IsInitialized)
     {
         FileInfo clientConfigFile = AzureConfigUtils.ClientConfigFileLocation;
         if (!clientConfigFile.Exists)
         {
             throw new FileNotFoundException(
                       string.Format("Cannot find Orleans client config file for initialization at {0}",
                                     clientConfigFile.FullName), clientConfigFile.FullName);
         }
         OrleansAzureClient.Initialize(clientConfigFile);
     }
 }
Esempio n. 6
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // Orleans Client
            if (!OrleansAzureClient.IsInitialized)
            {
                OrleansAzureClient.Initialize(Server.MapPath(@"~/ClientConfiguration.xml"));
            }

            OrleansConfig.InitializeOrleans();
        }
Esempio n. 7
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            if (RoleEnvironment.IsAvailable)
            {
                OrleansAzureClient.Initialize(Server.MapPath("~/AzureConfiguration.xml"));
            }
            else
            {
                Orleans.OrleansClient.Initialize(Server.MapPath("~/ClientConfiguration.xml"));
            }
        }
Esempio n. 8
0
 protected void Application_Start()
 {
     if (RoleEnvironment.IsAvailable)
     {
         // running in Azure
         OrleansAzureClient.Initialize(Server.MapPath(@"~/AzureConfiguration.xml"));
     }
     else
     {
         // not running in Azure
         OrleansClient.Initialize(Server.MapPath(@"~/LocalConfiguration.xml"));
     }
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
 }
Esempio n. 9
0
        /// <summary>
        /// Configures Orleans for use with Azure.
        /// </summary>
        /// <remarks>This should appear earlier in the pipeline than any usage of Orleans.</remarks>
        /// <param name="app">The app being configured.</param>
        /// <param name="clientConfigurationFile">The client configuration file.</param>
        public static void ConfigureOrleans(this IAppBuilder app, FileInfo clientConfigurationFile)
        {
            app.Use(
                async(context, next) =>
            {
                if (!OrleansAzureClient.IsInitialized)
                {
                    lock (InitializationLock)
                    {
                        if (!OrleansAzureClient.IsInitialized)
                        {
                            OrleansAzureClient.Initialize(clientConfigurationFile);
                        }
                    }
                }

                await next.Invoke().ConfigureAwait(false);
            });
        }
Esempio n. 10
0
        public ActionResult Index()
        {
            ViewBag.Title = "Adventure Terre";

            if (!OrleansAzureClient.IsInitialized)
            {
                FileInfo clientConfigFile = AzureConfigUtils.ClientConfigFileLocation;
                if (!clientConfigFile.Exists)
                {
                    var configFilePath = System.Web.Hosting.HostingEnvironment.MapPath("~/bin/") + "ClientConfiguration.xml";
                    OrleansAzureClient.Initialize(configFilePath);
                }
                else
                {
                    OrleansAzureClient.Initialize(clientConfigFile);
                }
            }

            return(View());
        }
Esempio n. 11
0
        void Application_Start(object sender, EventArgs e)
        {
            // Code that runs on application startup
            if (!OrleansAzureClient.IsInitialized)
            {
                FileInfo clientConfigFile = AzureConfigUtils.ClientConfigFileLocation;
                if (!clientConfigFile.Exists)
                {
                    //throw new FileNotFoundException(string.Format("Cannot find Orleans client config file for initialization at {0}", clientConfigFile.FullName), clientConfigFile.FullName);
                    var configFilePath = System.Web.Hosting.HostingEnvironment.MapPath("~/bin/") + "ClientConfiguration.xml";
                    OrleansAzureClient.Initialize(configFilePath);
                }
                else
                {
                    OrleansAzureClient.Initialize(clientConfigFile);
                }
            }

            AreaRegistration.RegisterAllAreas();
            System.Web.Http.GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
Esempio n. 12
0
        static async Task DoIt()
        {
            var gc = new OrleansAzureClient(ShipHubCloudConfiguration.Instance.DeploymentId, ShipHubCloudConfiguration.Instance.DataConnectionString);

            var user = await gc.GetGrain <IUserActor>(87309); // kogir

            //var repo = await gc.GetGrain<IRepositoryActor>(59613425); // realartists/test
            var repo = await gc.GetGrain <IRepositoryActor>(28232663); // dotnet/orleans

            //var issue = gc.GetGrain<IIssueActor>(139, "realartists/test", grainClassNamePrefix: null); // realartists/test#139
            var issue = await gc.GetGrain <IIssueActor>(423, "realartists/shiphub-server", grainClassNamePrefix : null); // realartists/shiphub-server#423

            Console.WriteLine("[q]: Quit, [u]: Sync user [r]: Sync repo [i]: Sync issue");
            ConsoleKeyInfo keyInfo;

            while ((keyInfo = Console.ReadKey(true)).Key != ConsoleKey.Q)
            {
                switch (keyInfo.Key)
                {
                case ConsoleKey.U:
                    Console.WriteLine($"[{DateTimeOffset.Now}]: Syncing user {user.GetPrimaryKeyLong()}.");
                    user.Sync().LogFailure();
                    break;

                case ConsoleKey.R:
                    Console.WriteLine($"[{DateTimeOffset.Now}]: Syncing repository {repo.GetPrimaryKeyLong()}.");
                    repo.Sync().LogFailure();
                    break;

                case ConsoleKey.I:
                    Console.WriteLine($"[{DateTimeOffset.Now}]: Syncing issue {issue.GetPrimaryKeyLong(out string repoName)} in {repoName}.");
                    issue.SyncTimeline(user.GetPrimaryKeyLong(), RealArtists.ShipHub.Common.GitHub.RequestPriority.Interactive).LogFailure();
                    break;
                }
            }
        }