/// <summary> /// 写错误 /// </summary> /// <param name="context"></param> /// <param name="message"></param> private void WriteError(ExceptionContext context, string message) { if (context.Exception is BadHttpRequestException) { return; } _logger.LogCritical(context.Exception, message); ConsoleHelperBase.WriteLine(nameof(ExceptionFilter), message, "Error", ConsoleColor.Red); }
public static async Task Main(string[] args) { WebAssemblyHost webAssemblyHost = CreateWebHost(args); ApplicationData.ServiceProvider = webAssemblyHost.Services; await InitHttpManage(); ConsoleHelperBase.StartWrite(); await webAssemblyHost.RunAsync(); }
/// <summary> /// 配置 /// </summary> /// <param name="applicationBuilder"></param> /// <param name="webHostEnvironment"></param> public void Configure(IApplicationBuilder applicationBuilder, IWebHostEnvironment webHostEnvironment) { #region 启用调试错误页面 if (webHostEnvironment.IsDevelopment()) { applicationBuilder.UseDeveloperExceptionPage(); } #endregion #region Https重定向 if (_config.EnableHttpsRedirection) { applicationBuilder.UseHttpsRedirection(); } #endregion #region 路由 applicationBuilder.UseRouting(); #endregion #region 鉴权 if (_config.EnableAuthentication) { applicationBuilder.UseAuthentication(); } #endregion #region 授权 if (_config.EnableAuthorization) { applicationBuilder.UseAuthorization(); } #endregion #region 跨域 if (_config.EnableCors) { applicationBuilder.UseCors("AllowAll"); } #endregion #region Swagger applicationBuilder.UseSwagger(c => { c.RouteTemplate = "{documentName}/swagger.json"; }) .UseSwaggerUI(c => { c.SwaggerEndpoint($"/{_config.AppName}/swagger.json", $"{_config.AppName}"); }); #endregion #region NLog NLogBuilder.ConfigureNLog(Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? string.Empty, "NLog.config")).GetCurrentClassLogger(); LogManager.Configuration.Install(new InstallationContext()); LogManager.Configuration.Variables["AppName"] = _config.AppName; #endregion #region Materal MateralConfig.PageStartNumber = 1; #endregion applicationBuilder.UseEndpoints(endpointRouteBuilder => { endpointRouteBuilder.MapControllers(); OnUseEndpoints?.Invoke(endpointRouteBuilder); }); ConsoleHelperBase.StartWrite(); }
/// <summary> /// 获得返回 /// </summary> /// <param name="context"></param> /// <returns></returns> private ResultModel GetResult(ExceptionContext context) { string message = ConsoleHelperBase.GetMessage(context.Exception); ResultModel result = context.Exception switch { MateralAPPException _ => ResultModel.Fail(message), AspectInvocationException aspectInvocationException => aspectInvocationException.InnerException is MateralAPPException ? ResultModel.Fail(message) : HandlerDefaultException(context, message), _ => HandlerDefaultException(context, message) }; return(result); }
/// <summary> /// 连接并重试 /// </summary> /// <param name="token"></param> /// <returns></returns> public async Task <bool> ConnectWithRetryAsync(CancellationToken token) { while (Connection.State != HubConnectionState.Connected) { try { ConsoleHelperBase.WriteLine(_consoleTitle, $"正在与服务器{_url}建立连接.....", "Info", ConsoleColor.White); await Connection.StartAsync(token); if (_onConnectSuccess != null) { await _onConnectSuccess(); } } catch when(token.IsCancellationRequested) { return(false); }
/// <summary> /// 控制台输出 /// </summary> /// <param name="exception">消息</param> public static void WriteLine(Exception exception) { string message = ConsoleHelperBase.GetMessage(exception); ConsoleHelperBase.WriteLine(_appName, message, "Error", ConsoleColor.Red); }
/// <summary> /// 控制台输出 /// </summary> /// <param name="message">消息</param> /// <param name="subTitle">副标题</param> /// <param name="consoleColor">颜色</param> public static void WriteLine(string message, string subTitle = null, ConsoleColor consoleColor = ConsoleColor.White) { ConsoleHelperBase.WriteLine(_appName, message, subTitle, consoleColor); }