public static async Task <ModuleResponseCode> RouteAsync(string Path, LanguageManager STR_LANG, WebHttpContextRaw ContextRaw) { string Version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); //Set HTTP Header to this ContextRaw.Response.SetHeader("X-Powered-By", $"HS Server Framework (Web)/{Version}"); ContextRaw.Response.SetHeader("Server", $"HS Server (Web)/{Version}"); MiddlewareData data = await Middleware.RouteAsync(new MiddlewareData(Path, STR_LANG, ContextRaw)); ModuleResponseCode ResultCode = (ModuleResponseCode)data.StatusCode; if (!data.IsClose && ContextRaw.Response.IsWritable) { ResultCode = await Router.RouteAsync(data); } //MiddleWareData data_post = await MiddleWare_Post.RouteAsync(Path, Params, STR_LANG, ContextRaw); return(ResultCode); }
/// <summary> /// 웹 모듈로 라우팅 중지 (비동기) /// </summary> /// <param name="StatusCode">HTTP 상태 코드</param> /// <param name="Message">출력 메세지</param> /// <param name="Abort">True 면 즉시 라우팅 중지 False 면 다른 미들웨어 까지만 실행후 웹 모듈로 라우팅 중지</param> public async Task CloseAsync(ModuleResponseCode StatusCode = ModuleResponseCode.Error, string Message = null, bool Abort = false) { await CloseAsync((float)StatusCode, Message, Abort); }
/// <summary> /// 웹 모듈로 라우팅 중지 (비동기) /// </summary> /// <param name="StatusCode">HTTP 상태 코드</param> /// <param name="Data">데이터 (JSON 으로 출력됩니다)</param> /// <param name="Abort">True 면 즉시 라우팅 중지 False 면 다른 미들웨어 까지만 실행후 웹 모듈로 라우팅 중지</param> public async Task CloseAsync(ModuleResponseCode StatusCode = ModuleResponseCode.Error, object Data = null, bool Abort = false) { await CloseAsync((float)StatusCode, Data, Abort); }
/// <summary> /// 웹 모듈로 라우팅 중지 /// </summary> /// <param name="StatusCode">HTTP 상태 코드</param> /// <param name="Data">데이터 (JSON 으로 출력됩니다)</param> /// <param name="Abort">True 면 즉시 라우팅 중지 False 면 다른 미들웨어 까지만 실행후 웹 모듈로 라우팅 중지</param> public void Close(ModuleResponseCode StatusCode = ModuleResponseCode.Error, object Data = null, bool Abort = false) { CloseAsync(StatusCode, Data, Abort).Wait(); }
/// <summary> /// 웹 모듈로 라우팅 중지 /// </summary> /// <param name="StatusCode">HTTP 상태 코드</param> /// <param name="Message">출력 메세지</param> /// <param name="Abort">True 면 즉시 라우팅 중지 False 면 다른 미들웨어 까지만 실행후 웹 모듈로 라우팅 중지</param> public void Close(ModuleResponseCode StatusCode = ModuleResponseCode.Error, string Message = null, bool Abort = false) { CloseAsync(StatusCode, Message, Abort).Wait(); }