public void ConversionShouldBeCalledBetweenDifferentSignatures()
        {
            object theDefault = "42";

            Func<string, int> convert1 = app => int.Parse(app, CultureInfo.InvariantCulture) + 1;
            Func<int, string> convert2 = app => app.ToString(CultureInfo.InvariantCulture) + "2";

            Func<string, string> middleware1 = app => app + "3";
            Func<int, int> middleware2 = app => app + 4;

            var builder = new AppBuilder();
            builder.AddSignatureConversion(convert1);
            builder.AddSignatureConversion(convert2);
            builder.Properties["builder.DefaultApp"] = theDefault;

            var theApp = builder.BuildNew<int>(x => x.Use(middleware1).Use(middleware2));

            // "42" + 1: 43         // theDefault passed through convert1 for next middleware
            // 43 + 4: 47           // passed through middleware2
            // 47 + "2": "472"      // passed through convert2 for next middleware
            // "472" + "3": "4723"  // passed through middleware1
            // "4723" + 1: 4724     // passed through convert1 to return

            theApp.ShouldBe(4724);
        }
Example #2
0
 public void Build_returns_404_by_default()
 {
     var builder = new AppBuilder();
     var app = builder.Materialize();
     var callResult = AppUtils.Call(app);
     Assert.That(callResult.Status, Is.EqualTo("404 Not Found"));
 }
Example #3
0
        public Task Build_returns_404_by_default()
        {
            var builder = new AppBuilder();
            var app = builder.Materialize<AppDelegate>();
            var client = TestHttpClient.ForAppDelegate(app);

            return client.GetAsync("http://localhost")
                .Then(response => response.StatusCode.ShouldBe(HttpStatusCode.NotFound));
        }
        public void ConverterCombinationWillBeInvokedIfNeeded()
        {
            var builder = new AppBuilder();
            Func<AppFunc, DifferentType> convert1 = _ => new DifferentType();
            Func<DifferentType, AppFunc> convert2 = _ => call => { throw new NotImplementedException(); };
            builder.AddSignatureConversion(convert1);
            builder.AddSignatureConversion(convert2);

            var diff = builder.Build<DifferentType>();
        }
Example #5
0
        static void Main(string[] args)
        {
            var app = new AppBuilder().Build(Startup.Configuration);

            var server = new ServerFactory().Create(app, 1337);

            Console.WriteLine("Running on http://localhost:1337");

            Console.ReadLine();
        }
Example #6
0
        public void DelegateShouldBeCalledWithParameters()
        {
            string theDefault = "default";

            var builder = new AppBuilder();
            builder.Properties["builder.DefaultApp"] = theDefault;
            builder.Use(new Func<string, int, long, string>((s, i, l) => i + l + s), 1, 2L);
            var theApp = builder.Build<string>();

            theApp.ShouldNotBeSameAs("12" + theDefault);
        }
        public void InstanceMemberNamedInvokeShouldQualifyAsMiddlewareFactory()
        {
            Func<int, string> theDefault = call => "Hello[" + call + "]";

            var builder = new AppBuilder();
            builder.Properties["builder.DefaultApp"] = theDefault;

            var theApp = builder.BuildNew<Func<int, string>>(
                x => x
                    .Use(new StringPlusValue(" world!"))
                    .Use(new StringPlusValue(" there,")));

            theApp(42).ShouldBe("Hello[42] there, world!");
        }
Example #8
0
        public GhostSettings()
        {
            DefaultServer = "HttpListener";

            DefaultScheme = "http";
            DefaultHost = "+";
            DefaultPort = 8080;

            DefaultOutput = Console.Error;

            ServerAssemblyPrefix = "Gate.Hosts.";

            Loader = new StartupLoader();
            Builder = new AppBuilder();
        }
Example #9
0
        static void Main(string[] args)
        {
            var builder = new AppBuilder();
            var app = builder.Build(Startup.Configuration);

            var server = new ServerFactory().Create(app, 8081);

            ThreadPool.QueueUserWorkItem(_ =>
                {
                    while (true)
                    {
                        Thread.Sleep(1000);

                        var sc = new ScreenCapture();

                        var image = sc.CaptureScreen();

                        using (var ms = new MemoryStream())
                        {
                            image.Save(ms, ImageFormat.Png);

                            var s = Convert.ToBase64String(ms.ToArray());

                            var connection = new FileConnectionManager<ScreenSharing>(
                                Startup.DependencyResolver.Resolve<IMessageBus>(),
                                Startup.DependencyResolver.Resolve<IJsonSerializer>(),
                                Startup.DependencyResolver.Resolve<ITraceManager>()
                                );

                            connection.SendFile("image/png", s);
                        }

                        Console.WriteLine("Data sent");
                    }
                });

            Console.WriteLine("Running on localhost:8081");

            Console.ReadKey();
        }
        public void DelegateShouldBeCalledToAddMiddlewareAroundTheDefaultApp()
        {
            var theNext = "next";
            var theMiddle = "middle";
            var theDefault = "default";

            Func<string, string> middleware = next =>
            {
                theNext = next;
                return theMiddle;
            };

            var builder = new AppBuilder();
            builder.Properties["builder.DefaultApp"] = theDefault;
            var theApp = builder.BuildNew<string>(x => x.Use(middleware));

            builder.Run(theApp);

            theNext.ShouldBeSameAs(theDefault);
            theApp.ShouldBeSameAs(theMiddle);
            theApp.ShouldNotBeSameAs(theDefault);
        }
Example #11
0
 public static void InitInterop()
 => AppBuilder.Configure <App>()
 .UsePlatformDetect()
 .LogToTrace()
 .UseReactiveUI()
 .SetupWithoutStarting();
Example #12
0
        public void UseAppWithIOwinContext()
        {
            var builder = new AppBuilder();
            builder.Run(context =>
            {
                context.Response.StatusCode = 201;
                return Task.FromResult<object>(null);
            });

            AppFunc theApp = builder.Build();
            IOwinContext baseContext = new OwinContext();
            theApp(baseContext.Environment).Wait();
            Assert.Equal(201, baseContext.Response.StatusCode);
        }
Example #13
0
        public void AppFuncConvertsToOwinMiddleware()
        {
            var builder = new AppBuilder();
            builder.Use(new Func<object, AppFunc>(ignored =>
            {
                return environment =>
                {
                    environment["owin.ResponseReasonPhrase"] = "Set In Middleware";
                    return Task.FromResult<object>(null);
                };
            }));

            var theApp = builder.Build<OwinMiddleware>();
            IOwinContext baseContext = new OwinContext();
            theApp.Invoke(baseContext).Wait();
            Assert.Equal(200, baseContext.Response.StatusCode);
            Assert.Equal("Set In Middleware", baseContext.Response.ReasonPhrase);
        }
Example #14
0
 public static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure <App>()
 .AfterSetup(_ => IconProvider.Register <FontAwesomeIconProvider>())
 .UsePlatformDetect()
 .LogToTrace()
 .UseReactiveUI();
Example #15
0
 public static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure(() => new AvaloniaApp(() => new TesterWindow()))
 .UsePlatformDetect()
 .LogToTrace();
        protected override AppBuilder CreateAppBuilder()
        {
            var builder = AppBuilder.Configure <TApp>();

            return(CustomizeAppBuilder(builder));
        }
        public Task TheDefaultDefaultShouldBe404()
        {
            var builder = new AppBuilder();
            var app = builder.Build();

            var request = OwinRequest.Create();
            var response = new OwinResponse(request);
            return app(request.Dictionary).Then(() => response.StatusCode.ShouldBe(404));
        }
Example #18
0
        public static void Main(string[] args)
        {
            bool firstProcess = false;

            // chromely starts multiple child processes
            // we only want to start the asp core on the first process
            //
            // ideally it would be nice if chromely allowed things to be passed to
            // the child processes through args

            Mutex mutex = null;

            try
            {
                // if this succeeds we are not the first process
                mutex = Mutex.OpenExisting("BlazorTestMutex");
            }
            catch
            {
                // must be first process
                mutex        = new Mutex(false, "BlazorTestMutex");
                firstProcess = true;
            }

            int port = -1;

            if (firstProcess)
            {
                // try to find first available local port to host blazor on
                for (int i = StartScan; i < EndScan; i++)
                {
                    if (IsPortAvailable(i))
                    {
                        port = i;
                        break;
                    }
                }

                if (port != -1)
                {
                    // start the kestrel server in a background thread
                    var blazorTask = new Task(() => CreateHostBuilder(args, port).Build().Run(), TaskCreationOptions.LongRunning);
                    blazorTask.Start();

                    // wait till its up
                    while (IsPortAvailable(port))
                    {
                        Thread.Sleep(1);
                    }
                }

                // used to pass the port number to chromely child processes
                MemoryMappedFile         mmf      = MemoryMappedFile.CreateNew("BlazorTestMap", 4);
                MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor();
                accessor.Write(0, (int)port);
            }
            else
            {
                // fetch port number
                MemoryMappedFile         mmf      = MemoryMappedFile.CreateOrOpen("BlazorTestMap", 4);
                MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor();
                port = accessor.ReadInt32(0);
            }

            if (port != -1)
            {
                // start up chromely
                var core   = typeof(IChromelyConfiguration).Assembly;
                var config = DefaultConfiguration.CreateForRuntimePlatform();
                config.CefDownloadOptions     = new CefDownloadOptions(true, true);
                config.WindowOptions.Position = new WindowPosition(1, 2);
                config.WindowOptions.Size     = new WindowSize(1000, 600);
                config.StartUrl      = $"https://127.0.0.1:{port}";
                config.DebuggingMode = true;
                config.WindowOptions.RelativePathToIconFile = "chromely.ico";

                try
                {
                    var builder = AppBuilder.Create();
                    builder = builder.UseApp <TestApp>();
                    builder = builder.UseConfiguration <DefaultConfiguration>(config);
                    builder = builder.Build();
                    builder.Run(args);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    throw;
                }
            }

            mutex.ReleaseMutex();
        }
 protected virtual AppBuilder CustomizeAppBuilder(AppBuilder builder) => builder.UseAndroid();
 public static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure <App>()
 .UsePlatformDetect()
 .UseDataGrid()
 .LogToDebug();
Example #21
0
 static void Main(string[] args)
 {
     AppBuilder.Configure <App>()
     .UsePlatformDetect()
     .Start <MainWindow>();
 }
Example #22
0
 /// <summary>
 /// This method is needed for IDE previewer infrastructure
 /// </summary>
 public static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure <App>()
 .UsePlatformDetect()
 .UseSkia()
 .UseReactiveUI()
 .UseDataGrid();
 public void DelegatesWithIdenticalParametersShouldConvertAutomatically()
 {
     var builder = new AppBuilder();
     builder.Properties["builder.DefaultApp"] = new Func<string, string>(call => call);
     builder.UseFunc<AppOne>(next => call => next(call) + "1");
     builder.UseFunc<AppTwo>(next => call => next(call) + "2");
     builder.UseFunc<Func<string, string>>(next => call => next(call) + "3");
     var app = builder.Build<AppTwo>();
     app("0").ShouldBe("0321");
 }
Example #24
0
 private static void ConfigureAssetAssembly(AppBuilder builder)
 {
     AvaloniaLocator.CurrentMutable
     .GetService <IAssetLoader>()
     .SetDefaultAssembly(typeof(App).Assembly);
 }
 public void NoConversionAvailableThrowsArgumentException()
 {
     var builder = new AppBuilder();
     Assert.Throws<ArgumentException>(() => builder.Build<DifferentType>());
 }
Example #26
0
 private static AppBuilder BuildAvaloniaApp()
 {
     return(AppBuilder.Configure <App>().UsePlatformDetect().UseReactiveUI());
 }
        public void TypeofClassConstructorsWithWrongParameterCountShouldThrow()
        {
            Func<int, string> theDefault = call => "Hello[" + call + "]";

            var builder = new AppBuilder();
            builder.Properties["builder.DefaultApp"] = theDefault;

            Should.Throw<MissingMethodException>(() =>
            {
                var theApp = builder.BuildNew<Func<int, string>>(
                x => x.Use(typeof(StringPlusValue2), "arg 1", "extra arg"));
            });
        }
Example #28
0
 static void Main(string[] args)
 {
     AppBuilder.Configure <UntitledCanvasApp>()
     .UsePlatformDetect()
     .StartWithClassicDesktopLifetime(args);
 }
Example #29
0
 public CorsAppDecorator(AppBuilder build)
     : base(build)
 {
 }
Example #30
0
 static AppBuilder BuildAvaloniaApp()
 {
     return(AppBuilder.Configure <App>()
            .UsePlatformDetect()
            .LogToDebug(LogEventLevel.Warning));
 }
Example #31
0
        public void TheDefaultDefaultShouldBe404()
        {
            var builder = new AppBuilder();
            var app = builder.Build<OwinMiddleware>();

            var context = new OwinContext();
            app.Invoke(context).Wait();
            context.Response.StatusCode.ShouldBe(404);
        }
Example #32
0
        public async Task PostUserDescription()
        {
            var container = AppBuilder.CreateContainer();

            using (WebApp.Start(Settings.Current.BaseURL, app => AppBuilder.BuildWithContainer(app, container, false))) {
                var repository = container.GetInstance <IEventRepository>();
                repository.RemoveAll();

                const string referenceId    = "fda94ff32921425ebb08b73df1d1d34c";
                const string badReferenceId = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";

                var statsCounter = container.GetInstance <IAppStatsClient>() as InMemoryAppStatsClient;
                var descQueue    = container.GetInstance <IQueue <EventUserDescription> >() as InMemoryQueue <EventUserDescription>;

                Assert.NotNull(statsCounter);

                EnsureSampleData(container);

                var events = new List <Event> {
                    new Event {
                        Message = "Testing", ReferenceId = referenceId
                    }
                };
                var configuration = GetClient().Configuration;
                var serializer    = new DefaultJsonSerializer();

                var client      = new DefaultSubmissionClient();
                var description = new UserDescription {
                    EmailAddress = "*****@*****.**", Description = "Some description."
                };
                Debug.WriteLine("Before Submit Description");
                statsCounter.DisplayStats();
                Assert.True(statsCounter.WaitForCounter(StatNames.EventsUserDescriptionErrors, work: () => {
                    var response = client.PostUserDescription(referenceId, description, configuration, serializer);
                    Debug.WriteLine("After Submit Description");
                    Assert.True(response.Success, response.Message);
                    Assert.Null(response.Message);
                }));
                statsCounter.DisplayStats();
                Debug.WriteLine(descQueue.GetQueueCount());

                Debug.WriteLine("Before Post Event");
                Assert.True(statsCounter.WaitForCounter(StatNames.EventsProcessed, work: () => {
                    var response = client.PostEvents(events, configuration, serializer);
                    Debug.WriteLine("After Post Event");
                    Assert.True(response.Success, response.Message);
                    Assert.Null(response.Message);
                }));
                statsCounter.DisplayStats();
                if (statsCounter.GetCount(StatNames.EventsUserDescriptionProcessed) == 0)
                {
                    Assert.True(statsCounter.WaitForCounter(StatNames.EventsUserDescriptionProcessed));
                }

                container.GetInstance <IElasticClient>().Refresh();
                var ev = repository.GetByReferenceId("537650f3b77efe23a47914f4", referenceId).FirstOrDefault();
                Assert.NotNull(ev);
                Assert.NotNull(ev.GetUserDescription());
                Assert.Equal(description.ToJson(), ev.GetUserDescription().ToJson());

                Assert.InRange(statsCounter.GetCount(StatNames.EventsUserDescriptionErrors), 1, 5);
                Assert.True(statsCounter.WaitForCounter(StatNames.EventsUserDescriptionErrors, work: () => {
                    var response = client.PostUserDescription(badReferenceId, description, configuration, serializer);
                    Assert.True(response.Success, response.Message);
                    Assert.Null(response.Message);
                }));
                statsCounter.DisplayStats();

                Assert.InRange(statsCounter.GetCount(StatNames.EventsUserDescriptionErrors), 2, 10);
            }
        }
Example #33
0
        public void UseHandlerWithIOwinContext()
        {
            var builder = new AppBuilder();
            builder.Use((context, next) =>
            {
                context.Response.ReasonPhrase = "Set In Middleware";
                return next();
            });

            AppFunc theApp = builder.Build();
            IOwinContext baseContext = new OwinContext();
            theApp(baseContext.Environment).Wait();
            Assert.Equal(404, baseContext.Response.StatusCode);
            Assert.Equal("Set In Middleware", baseContext.Response.ReasonPhrase);
        }
Example #34
0
 // Avalonia configuration, don't remove; also used by visual designer.
 public static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure <App>()
 .UsePlatformDetect()
 .LogToDebug()
 .UseReactiveUI();
Example #35
0
        public void OwinMiddlewareConvertsToAppFunc()
        {
            var builder = new AppBuilder();
            builder.Use(new Func<object, OwinMiddleware>(ignored => { return new OwinMiddlwareApp(); }));

            var theApp = builder.Build<AppFunc>();
            IOwinContext baseContext = new OwinContext();
            theApp.Invoke(baseContext.Environment).Wait();
            Assert.Equal(200, baseContext.Response.StatusCode);
            Assert.Equal("Set In Middleware", baseContext.Response.ReasonPhrase);
        }
Example #36
0
 public static AppBuilder BuildAvaloniaApp() =>
 AppBuilder
 .Configure <App>()
 .UsePlatformDetect()
 .UseReactiveUI()
 .UseHeadless();
        public Task TheDefaultDefaultShouldBe404()
        {
            var builder = new AppBuilder();
            var app = builder.Build();

            var helper = new OwinHelper();
            return app(helper.Env).Then(() => helper.ResponseStatusCode.ShouldBe(404));
        }
Example #38
0
 // Avalonia configuration, don't remove; also used by visual designer.
 public static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure <App>()
 .UsePlatformDetect()
 .LogToTrace();
        public void DelegateShouldQualifyAsAppWithRun()
        {
            Func<int, string> theDefault = call => "Hello[" + call + "]";
            Func<int, string> theSite = call => "Called[" + call + "]";

            var builder = new AppBuilder();
            builder.Properties["builder.DefaultApp"] = theDefault;

            var theApp = builder.BuildNew<Func<int, string>>(x => x.Run(theSite));

            theApp(42).ShouldBe("Called[42]");
        }
Example #40
0
 public void Setup()
 {
     _builder   = new AppBuilder();
     _container = new Container();
     GraphiteApplicationTests.RegisterRequestObjects(_container);
 }
        public void InstanceMemberNamedInvokeShouldQualifyAsAppWithRun()
        {
            var theSite = new MySite();

            var builder = new AppBuilder();

            var theApp = builder.BuildNew<Func<int, string>>(x => x.Run(theSite));

            theApp(42).ShouldBe("Called[42]");
        }
Example #42
0
        //private static IDisposable StartupWorkingTitleApp()
        //{
        //    var server = new Server((req, resp) =>
        //                                {
        //                                    resp.Write("Hello, again, world");
        //                                    resp.End();
        //                                });
        //    server.Listen(8081, null);
        //    return server;
        //}
        private static IDisposable StartupNancyApp()
        {
            var builder = new AppBuilder();
            var app = builder.Build(Configuration);
            var server = new ServerFactory(new StdoutTrace()).Create(app, 8080);

            Console.WriteLine("Running on localhost:8080");
            return server;
        }
        public void OtherObjectShouldThrow()
        {
            Func<int, string> theDefault = call => "Hello[" + call + "]";

            var builder = new AppBuilder();
            builder.Properties["builder.DefaultApp"] = theDefault;

            Should.Throw<NotSupportedException>(() =>
            {
                var theApp = builder.BuildNew<Func<int, string>>(
                x => x.Use(new object()));
            });
        }
Example #44
0
        static void Main()
        {
            InitDllMap();
            //SetProcessDPIAware();
            //TODO: figure out how to set this switch in appconfig
            AppContext.SetSwitch("Switch.System.Runtime.Serialization.SerializationGuard.AllowFileWrites", true);
            Thread.CurrentThread.CurrentCulture   = CultureInfo.InvariantCulture;
            Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;

            string[] args = Environment.GetCommandLineArgs();
            PathMod.InitExePath(args[0]);
            DiagManager.InitInstance();
            DiagManager.Instance.CurSettings = DiagManager.Instance.LoadSettings();
            DiagManager.Instance.LoadModSettings();
            DiagManager.Instance.UpgradeBinder = new UpgradeBinder();

            try
            {
                DiagManager.Instance.LogInfo("=========================================");
                DiagManager.Instance.LogInfo(String.Format("SESSION STARTED: {0}", String.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now)));
                DiagManager.Instance.LogInfo("Version: " + Versioning.GetVersion().ToString());
                DiagManager.Instance.LogInfo(Versioning.GetDotNetInfo());
                DiagManager.Instance.LogInfo("=========================================");


                bool logInput  = true;
                bool guideBook = false;
                bool guideCsv  = false;
                GraphicsManager.AssetType convertAssets      = GraphicsManager.AssetType.None;
                DataManager.DataType      convertIndices     = DataManager.DataType.None;
                DataManager.DataType      reserializeIndices = DataManager.DataType.None;
                string        langArgs   = "";
                bool          dev        = false;
                string        quest      = "";
                List <string> mod        = new List <string>();
                bool          buildQuest = false;
                string        playInputs = null;
                for (int ii = 1; ii < args.Length; ii++)
                {
                    if (args[ii] == "-dev")
                    {
                        dev = true;
                    }
                    else if (args[ii] == "-play" && args.Length > ii + 1)
                    {
                        playInputs = args[ii + 1];
                        ii++;
                    }
                    else if (args[ii] == "-lang" && args.Length > ii + 1)
                    {
                        langArgs = args[ii + 1];
                        ii++;
                    }
                    else if (args[ii] == "-nolog")
                    {
                        logInput = false;
                    }
                    else if (args[ii] == "-guide")
                    {
                        guideBook = true;
                    }
                    else if (args[ii] == "-csv")
                    {
                        guideCsv = true;
                    }
                    else if (args[ii] == "-asset")
                    {
                        PathMod.ASSET_PATH = Path.GetFullPath(args[ii + 1]);
                        ii++;
                    }
                    else if (args[ii] == "-raw")
                    {
                        PathMod.DEV_PATH = Path.GetFullPath(args[ii + 1]);
                        ii++;
                    }
                    else if (args[ii] == "-quest")
                    {
                        quest = args[ii + 1];
                        ii++;
                    }
                    else if (args[ii] == "-mod")
                    {
                        int jj = 1;
                        while (args.Length > ii + jj)
                        {
                            if (args[ii + jj].StartsWith("-"))
                            {
                                break;
                            }
                            else
                            {
                                mod.Add(args[ii + jj]);
                            }
                            jj++;
                        }
                        ii += jj - 1;
                    }
                    else if (args[ii] == "-build")
                    {
                        buildQuest = true;
                        ii++;
                    }
                    else if (args[ii] == "-convert")
                    {
                        int jj = 1;
                        while (args.Length > ii + jj)
                        {
                            GraphicsManager.AssetType conv = GraphicsManager.AssetType.None;
                            foreach (GraphicsManager.AssetType type in Enum.GetValues(typeof(GraphicsManager.AssetType)))
                            {
                                if (args[ii + jj].ToLower() == type.ToString().ToLower())
                                {
                                    conv = type;
                                    break;
                                }
                            }
                            if (conv != GraphicsManager.AssetType.None)
                            {
                                convertAssets |= conv;
                            }
                            else
                            {
                                break;
                            }
                            jj++;
                        }
                        ii += jj - 1;
                    }
                    else if (args[ii] == "-index")
                    {
                        int jj = 1;
                        while (args.Length > ii + jj)
                        {
                            DataManager.DataType conv = DataManager.DataType.None;
                            foreach (DataManager.DataType type in Enum.GetValues(typeof(DataManager.DataType)))
                            {
                                if (args[ii + jj].ToLower() == type.ToString().ToLower())
                                {
                                    conv = type;
                                    break;
                                }
                            }
                            if (conv != DataManager.DataType.None)
                            {
                                convertIndices |= conv;
                            }
                            else
                            {
                                break;
                            }
                            jj++;
                        }
                        ii += jj - 1;
                    }
                    else if (args[ii] == "-reserialize")
                    {
                        int jj = 1;
                        while (args.Length > ii + jj)
                        {
                            DataManager.DataType conv = DataManager.DataType.None;
                            foreach (DataManager.DataType type in Enum.GetValues(typeof(DataManager.DataType)))
                            {
                                if (args[ii + jj].ToLower() == type.ToString().ToLower())
                                {
                                    conv = type;
                                    break;
                                }
                            }
                            if (conv != DataManager.DataType.None)
                            {
                                reserializeIndices |= conv;
                            }
                            else
                            {
                                break;
                            }
                            jj++;
                        }
                        ii += jj - 1;
                    }
                }

                DiagManager.Instance.SetupGamepad();
                GraphicsManager.InitParams();

                DiagManager.Instance.DevMode = dev;

                if (quest != "")
                {
                    ModHeader header = PathMod.GetModDetails(Path.Combine(PathMod.MODS_PATH, quest));
                    if (header.IsValid())
                    {
                        PathMod.Quest = header;

                        DiagManager.Instance.LogInfo(String.Format("Loaded quest \"{0}\".", quest));
                    }
                    else
                    {
                        DiagManager.Instance.LogInfo(String.Format("Cannot find quest \"{0}\" in {1}. Falling back to base game.", quest, PathMod.MODS_PATH));
                    }
                }

                if (mod.Count > 0)
                {
                    List <ModHeader> workingMods = new List <ModHeader>();
                    for (int ii = 0; ii < mod.Count; ii++)
                    {
                        ModHeader header = PathMod.GetModDetails(Path.Combine(PathMod.MODS_PATH, mod[ii]));
                        if (header.IsValid())
                        {
                            workingMods.Add(header);
                            DiagManager.Instance.LogInfo(String.Format("Loaded mod \"{0}\".", String.Join(", ", mod[ii])));
                        }
                        else
                        {
                            DiagManager.Instance.LogInfo(String.Format("Cannot find mod \"{0}\" in {1}. It will be ignored.", mod, PathMod.MODS_PATH));
                            mod.RemoveAt(ii);
                            ii--;
                        }
                    }
                    PathMod.Mods = workingMods.ToArray();
                }


                if (playInputs != null)
                {
                    DiagManager.Instance.LoadInputs(playInputs);
                }

                Text.Init();
                if (langArgs != "" && DiagManager.Instance.CurSettings.Language == "")
                {
                    if (langArgs.Length > 0)
                    {
                        DiagManager.Instance.CurSettings.Language = langArgs.ToLower();
                        Text.SetCultureCode(langArgs.ToLower());
                    }
                    else
                    {
                        DiagManager.Instance.CurSettings.Language = "en";
                    }
                }
                Text.SetCultureCode(DiagManager.Instance.CurSettings.Language == "" ? "" : DiagManager.Instance.CurSettings.Language.ToString());

                if (buildQuest)
                {
                    if (!PathMod.Quest.IsValid())
                    {
                        DiagManager.Instance.LogInfo("No quest specified to build.");
                        return;
                    }
                    RogueEssence.Dev.DevHelper.MergeQuest(quest);

                    return;
                }

                if (convertAssets != GraphicsManager.AssetType.None)
                {
                    //run conversions
                    using (GameBase game = new GameBase())
                    {
                        GraphicsManager.InitSystem(game.GraphicsDevice);
                        GraphicsManager.RunConversions(convertAssets);
                    }
                    return;
                }

                if (reserializeIndices != DataManager.DataType.None)
                {
                    DiagManager.Instance.LogInfo("Beginning Reserialization");

                    using (GameBase game = new GameBase())
                    {
                        GraphicsManager.InitSystem(game.GraphicsDevice);
                        GraphicsManager.RebuildIndices(GraphicsManager.AssetType.All);
                    }

                    //we need the datamanager for this, but only while data is hardcoded
                    //TODO: remove when data is no longer hardcoded
                    LuaEngine.InitInstance();
                    DataManager.InitInstance();

                    DataManager.InitDataDirs(PathMod.ModPath(""));
                    RogueEssence.Dev.DevHelper.ReserializeBase();
                    DiagManager.Instance.LogInfo("Reserializing main data");
                    RogueEssence.Dev.DevHelper.Reserialize(reserializeIndices);
                    DiagManager.Instance.LogInfo("Reserializing map data");
                    if ((reserializeIndices & DataManager.DataType.Zone) != DataManager.DataType.None)
                    {
                        RogueEssence.Dev.DevHelper.ReserializeData <Map>(DataManager.DATA_PATH + "Map/", DataManager.MAP_EXT);
                        RogueEssence.Dev.DevHelper.ReserializeData <GroundMap>(DataManager.DATA_PATH + "Ground/", DataManager.GROUND_EXT);
                    }
                    DiagManager.Instance.LogInfo("Reserializing indices");
                    RogueEssence.Dev.DevHelper.RunIndexing(reserializeIndices);

                    DataManager.Instance.UniversalData = (TypeDict <BaseData>)RogueEssence.Dev.DevHelper.LoadWithLegacySupport(PathMod.ModPath(DataManager.MISC_PATH + "Index.bin"), typeof(TypeDict <BaseData>));
                    RogueEssence.Dev.DevHelper.RunExtraIndexing(reserializeIndices);
                    return;
                }

                if (convertIndices != DataManager.DataType.None)
                {
                    //we need the datamanager for this, but only while data is hardcoded
                    //TODO: remove when data is no longer hardcoded
                    LuaEngine.InitInstance();
                    DataManager.InitInstance();
                    DiagManager.Instance.LogInfo("Reserializing indices");
                    DataManager.InitDataDirs(PathMod.ModPath(""));
                    RogueEssence.Dev.DevHelper.RunIndexing(convertIndices);

                    DataManager.Instance.UniversalData = (TypeDict <BaseData>)RogueEssence.Dev.DevHelper.LoadWithLegacySupport(PathMod.ModPath(DataManager.MISC_PATH + "Index.bin"), typeof(TypeDict <BaseData>));
                    RogueEssence.Dev.DevHelper.RunExtraIndexing(convertIndices);
                    return;
                }


                if (guideBook || guideCsv)
                {
                    //print the guidebook in the chosen language
                    //we need the datamanager for this
                    LuaEngine.InitInstance();
                    DataManager.InitInstance();
                    DataManager.Instance.InitData();
                    //just print a guidebook and exit
                    StrategyGuide.PrintMoveGuide(guideCsv);
                    StrategyGuide.PrintItemGuide(guideCsv);
                    StrategyGuide.PrintAbilityGuide(guideCsv);
                    StrategyGuide.PrintEncounterGuide(guideCsv);
                    return;
                }


                //Dev.ImportManager.PrintMoveUsers(PathMod.DEV_PATH+"moves.txt");
                //Dev.ImportManager.PrintAbilityUsers(PathMod.DEV_PATH+"abilities.txt");

                logInput = false; //this feature is disabled for now...
                if (DiagManager.Instance.ActiveDebugReplay == null && logInput)
                {
                    DiagManager.Instance.BeginInput();
                }

                if (DiagManager.Instance.DevMode)
                {
                    InitDataEditor();
                    AppBuilder builder = RogueEssence.Dev.Program.BuildAvaloniaApp();
                    builder.StartWithClassicDesktopLifetime(args);
                }
                else
                {
                    DiagManager.Instance.DevEditor = new EmptyEditor();
                    using (GameBase game = new GameBase())
                        game.Run();
                }
            }
            catch (Exception ex)
            {
                DiagManager.Instance.LogError(ex);
                throw;
            }
        }
        public void TypeofClassConstructorsShouldQualifyAsMiddlewareFactory()
        {
            Func<int, string> theDefault = call => "Hello[" + call + "]";

            var builder = new AppBuilder();
            builder.Properties["builder.DefaultApp"] = theDefault;

            var theApp = builder.BuildNew<Func<int, string>>(
                x => x
                    .Use(typeof(StringPlusValue2), " world!")
                    .Use(typeof(StringPlusValue2), " there,"));

            theApp(42).ShouldBe("Hello[42] there, world!");
        }
 protected virtual AppBuilder CustomizeAppBuilder(AppBuilder builder) => builder;
Example #47
0
 public static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure <App>()
 .With(new AvaloniaNativePlatformOptions()
 {
 })
 .UsePlatformDetect();
Example #48
0
        //private static IDisposable StartupWorkingTitleApp()
        //{
        //    var server = new Server((req, resp) =>
        //                                {
        //                                    resp.Write("Hello, again, world");
        //                                    resp.End();
        //                                });
        //    server.Listen(8081, null);
        //    return server;
        //}
        private static IDisposable StartupNancyApp()
        {
            var builder = new AppBuilder();

            builder
                .Use(SetResponseHeader, "X-Server", "Dragonfly")
                .Use(ShowCalls)
                .UseWebSockets("/socketserver", OnConnection)
                .UseChunked()
                .RunNancy();

            var app = builder.Materialize<AppDelegate>();
            var server = new ServerFactory(new StdoutTrace()).Create(app, 8080);

            Console.WriteLine("Running on localhost:8080");
            return server;
        }
Example #49
0
        public void Use_middleware_between_calls_to_map_only_apply_to_requests_that_reach_later_maps()
        {
            var builder = new AppBuilder();
            builder
                .Use(AddStatus, " Outer")
                .Map("/here1", map => map
                    .Use(AddStatus, " Mapped1")
                    .Run(TwoHundredFoo))
                .Use(AddStatus, " Between")
                .Map("/here2", map => map
                    .Use(AddStatus, " Mapped2")
                    .Run(TwoHundredFoo))
                .Use(AddStatus, " Inner")
                .Run(TwoHundredFoo);

            var app = builder.Materialize();

            var resultThere = AppUtils.Call(app, "/there");
            var resultHere1 = AppUtils.Call(app, "/here1");
            var resultHere2 = AppUtils.Call(app, "/here2");

            Assert.That(resultThere.Status, Is.EqualTo("200 Foo Inner Between Outer"));
            Assert.That(resultHere1.Status, Is.EqualTo("200 Foo Mapped1 Outer"));
            Assert.That(resultHere2.Status, Is.EqualTo("200 Foo Mapped2 Between Outer"));
        }
Example #50
0
 // Avalonia configuration, don't remove; also used by visual designer.
 private static AppBuilder BuildAvaloniaApp()
 => AppBuilder.Configure <App>()
 .UsePlatformDetect()
 .LogToTrace()
 .UseReactiveUI();
Example #51
0
 private static void ConfigureAssetAssembly(AppBuilder builder)
 {
     AvaloniaLocator.CurrentMutable
         .GetService<IAssetLoader>()
         .SetDefaultAssembly(typeof(App).Assembly);
 }
Example #52
0
 private static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure <App>().UsePlatformDetect();
Example #53
0
        public void Method_that_returns_app_action_may_also_be_called()
        {
            var loader = new StartupLoader();
            var configuration = loader.Load("Gate.Builder.Tests.Loader.DefaultConfigurationLoaderTests.Alpha");

            var builder = new AppBuilder();
            configuration(builder);
            var app = builder.Materialize<AppDelegate>();

            _alphaCalls = 0;
            app(new Dictionary<string, object>(), null, null);
            Assert.That(_alphaCalls, Is.EqualTo(1));
        }
Example #54
0
 private static AppBuilder BuildAvaloniaApp()
 {
     return(AppBuilder.Configure <App>()
            .UsePlatformDetect()
            .LogToTrace());
 }