Exemple #1
0
        /// <summary>
        /// Starts the application asynchronously.
        /// </summary>
        /// <returns>
        /// A task.
        /// </returns>
        public async Task StartAppAsync()
        {
            Console.WriteLine("Application initializing...");

            var ambientServicesBuilder = new AmbientServicesBuilder();
            var elapsed = await Profiler.WithStopwatchAsync(
                async () =>
                {
                    await ambientServicesBuilder
                            .WithNLogManager()
                            .WithNet45AppEnvironment()
                            .WithMefCompositionContainerAsync(b => b.WithScopeFactory<UserMefScopeFactory>()
                                                                    .WithConventions(CompositionHelper.GetConventions()));

                    var compositionContainer = ambientServicesBuilder.AmbientServices.CompositionContainer;
                    var appBootstrapper = compositionContainer.GetExport<IAppBootstrapper>();
                    await appBootstrapper.StartAsync(new AppContext());
                });

            var container = ambientServicesBuilder.AmbientServices.CompositionContainer;
            var appManifest = container.GetExport<IAppManifest>();
            Console.WriteLine();
            Console.WriteLine($"Application '{appManifest.AppId} V{appManifest.AppVersion}' started. Elapsed: {elapsed:c}.");

            // TODO...

            var context = CreateUserContext(container, "Adela");
            this.compositionContexts.Add("Adela", context);

            context = CreateUserContext(container, "Ioan");
            this.compositionContexts.Add("Ioan", context);

            var gameManagerUser1 = this.compositionContexts["Ioan"].GetExport<IGameManager>().User.Name;
            var gameManagerUser2 = this.compositionContexts["Adela"].GetExport<IGameManager>().User.Name;
        }
Exemple #2
0
 private async Task<IAmbientServices> InitializeAmbientServicesAsync()
 {
     var ambientServicesBuilder = new AmbientServicesBuilder();
     await ambientServicesBuilder
             .WithNLogManager()
             .WithNet45AppEnvironment()
             .WithMefCompositionContainerAsync();
     return ambientServicesBuilder.AmbientServices;
 }
Exemple #3
0
        /// <summary>
        /// Starts the application asynchronously.
        /// </summary>
        /// <returns>
        /// A task.
        /// </returns>
        public async Task StartAppAsync()
        {
            Console.WriteLine("Application initializing...");

            var ambientServicesBuilder = new AmbientServicesBuilder();
            var elapsed = await Profiler.WithStopwatchAsync(
                async () =>
                {
                    await ambientServicesBuilder
                            .WithNLogManager()
                            .WithNet45AppEnvironment()
                            .WithMefCompositionContainerAsync();

                    var compositionContainer = ambientServicesBuilder.AmbientServices.CompositionContainer;
                    var appBootstrapper = compositionContainer.GetExport<IAppBootstrapper>();
                    await appBootstrapper.StartAsync(new AppContext());
                });

            var appManifest = ambientServicesBuilder.AmbientServices.CompositionContainer.GetExport<IAppManifest>();
            Console.WriteLine();
            Console.WriteLine($"Application '{appManifest.AppId} V{appManifest.AppVersion}' started. Elapsed: {elapsed:c}.");

            Console.WriteLine();
            Console.WriteLine("Provide an operation in form of: term1 op term2. End the program with q instead of an operation.");

            var calculator = ((CalculatorAppManifest)appManifest).Calculator;
            while (true)
            {
                var input = Console.ReadLine();
                if (input.ToLower().StartsWith("q"))
                {
                    break;
                }

                try
                {
                    var result = calculator.Compute(input);
                    Console.WriteLine($"Result is: {result}.");
                    Console.WriteLine();
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Red;

                    Console.WriteLine(ex.Message);

                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
        }
        public static async Task<AmbientServices> InitializeAsync()
        {
            var ambientServicesBuilder = new AmbientServicesBuilder();
            var elapsed = await Profiler.WithStopwatchAsync(
                async () =>
                {
                    await
                        ambientServicesBuilder.WithNLogManager()
                            .WithNet45HostingEnvironment()
                            .WithMefCompositionContainerAsync();

                    var compositionContainer = ambientServicesBuilder.AmbientServices.CompositionContainer;
                    var appBootstrapper = compositionContainer.GetExport<IAppBootstrapper>();
                    await appBootstrapper.StartAsync(new AppContext());
                });

            var ambientServices = ambientServicesBuilder.AmbientServices;
            (ambientServices as dynamic).Elapsed = elapsed;
            return ambientServices;
        }
Exemple #5
0
        /// <summary>
        /// Starts the application asynchronously.
        /// </summary>
        /// <returns>
        /// A task.
        /// </returns>
        public async Task StartAppAsync()
        {
            Console.WriteLine("Application starting...");

            var ambientServicesBuilder = new AmbientServicesBuilder();
            var elapsed = await Profiler.WithStopwatchAsync(
                async () =>
                    {
                        await ambientServicesBuilder
                                .WithNLogManager()
                                .WithNet45AppEnvironment()
                                .WithMefCompositionContainerAsync();

                        var appBootstrapper = ambientServicesBuilder.AmbientServices.CompositionContainer.GetExport<IAppBootstrapper>();
                        await appBootstrapper.StartAsync(new AppContext());
                    });

            var appManifest = ambientServicesBuilder.AmbientServices.CompositionContainer.GetExport<IAppManifest>();
            Console.WriteLine();
            Console.WriteLine($"Application '{appManifest.AppId} V{appManifest.AppVersion}' started. Elapsed: {elapsed:c}.");

            Console.WriteLine();
            Console.WriteLine("Press any key to end the program.");
        }