public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); }); Task.Run(async() => { if (await Electron.App.CommandLine.HasSwitchAsync("assembly-file") && await Electron.App.CommandLine.HasSwitchAsync("target-path")) { var assemblyFilePath = await Electron.App.CommandLine.GetSwitchValueAsync("assembly-file"); var destinationPath = await Electron.App.CommandLine.GetSwitchValueAsync("target-path"); var protoFileGenerator = new ProtoFileGenerator(); protoFileGenerator.SaveProtoFile(assemblyFilePath, destinationPath); Console.WriteLine("Successfull generated!"); Electron.App.Exit(); } else { var browserWindowOptions = new BrowserWindowOptions { WebPreferences = new WebPreferences { WebSecurity = false }, Show = false }; var mainWindow = await Electron.WindowManager.CreateWindowAsync(browserWindowOptions); mainWindow.OnReadyToShow += () => mainWindow.Show(); mainWindow.SetMenuBarVisibility(false); } }); }
public void OnGet() { Electron.IpcMain.On("assemblyPathBtn-selectDirectory", async(args) => { var mainWindow = Electron.WindowManager.BrowserWindows.First(); var options = new OpenDialogOptions { Properties = new OpenDialogProperty[] { OpenDialogProperty.openFile } }; string[] files = await Electron.Dialog.ShowOpenDialogAsync(mainWindow, options); Electron.IpcMain.Send(mainWindow, "assemblyPath-reply", files); }); Electron.IpcMain.On("destinationPathBtn-selectDirectory", async(args) => { var mainWindow = Electron.WindowManager.BrowserWindows.First(); var options = new OpenDialogOptions { Properties = new OpenDialogProperty[] { OpenDialogProperty.openDirectory } }; string[] files = await Electron.Dialog.ShowOpenDialogAsync(mainWindow, options); Electron.IpcMain.Send(mainWindow, "destinationPathBtn-reply", files); }); Electron.IpcMain.On("generate-schema", async(args) => { dynamic arguments = args; var assemblyFilePath = arguments.paths[0].Value; var destinationPath = arguments.paths[1].Value; var protoFileGenerator = new ProtoFileGenerator(); protoFileGenerator.SaveProtoFile(assemblyFilePath, destinationPath); var options = new MessageBoxOptions("Successfull generated!") { Type = MessageBoxType.info, Title = "Information" }; await Electron.Dialog.ShowMessageBoxAsync(options); }); }