Пример #1
0
 /// <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);
 }
Пример #2
0
        public static async Task Main(string[] args)
        {
            WebAssemblyHost webAssemblyHost = CreateWebHost(args);

            ApplicationData.ServiceProvider = webAssemblyHost.Services;
            await InitHttpManage();

            ConsoleHelperBase.StartWrite();
            await webAssemblyHost.RunAsync();
        }
Пример #3
0
 /// <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();
 }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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);
                }
Пример #6
0
        /// <summary>
        /// 控制台输出
        /// </summary>
        /// <param name="exception">消息</param>
        public static void WriteLine(Exception exception)
        {
            string message = ConsoleHelperBase.GetMessage(exception);

            ConsoleHelperBase.WriteLine(_appName, message, "Error", ConsoleColor.Red);
        }
Пример #7
0
 /// <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);
 }