public override async ValueTask <RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values) { var requestPath = httpContext.Request.Path.Value.ToLower(); if (!string.IsNullOrEmpty(requestPath) && requestPath[0] == '/') { requestPath = requestPath.Substring(1); } var qSettings = _appSetting.Get <List <QSettingModel> >("QueueSettings"); var mItems = qSettings?.FindAll(s => requestPath.StartsWith(s.Prefix.ToLower())); var item = mItems?.OrderByDescending(s => s.Prefix.Length).FirstOrDefault(); var pageFound = item != null; if (!pageFound) { return(values); } //TODO: Handle query strings values["controller"] = "Api"; values["action"] = "Index"; return(values); }
public async Task <IActionResult> Index() { try { var path = _sendingModel.Url.ToLower(); var qSettings = _appSetting.Get <List <QSettingModel> >("QueueSettings"); var mItems = qSettings?.FindAll(s => s.Active && path.StartsWith(s.Prefix.ToLower())); var queue = mItems?.OrderByDescending(s => s.Prefix.Length).FirstOrDefault(); if (queue == null) { return(StatusCode((int)GlobalStatusCode.NotFound, GlobalStatusCode.NotFound.GetEnumName() + ", 001")); } if (queue.MustAuthorize) { if (!_sendingModel.IsAuthenticated) { return(StatusCode((int)GlobalStatusCode.AccessDenied, GlobalStatusCode.AccessDenied.GetEnumName())); } /*var user = await _cacheMemory.Get<BaseUserInfo>(_sendingModel.TokenInfo.TokenId, Provider.Globals); * if (user == null) * { * var uInfo = await _authenticateService.Get(_sendingModel.TokenInfo.TokenId); * user = uInfo?.UserInfo; * } * * if (user == null) * { * return StatusCode((int) GlobalStatusCode.AccessDenied, * GlobalStatusCode.AccessDenied.GetEnumName()); * }*/ } var res = await _transmitter.Request(queue, _sendingModel); if (res == null) { return(StatusCode((int)GlobalStatusCode.InternalServerError, GlobalStatusCode.InternalServerError.GetEnumName())); } if (!(res is QWebResponse response)) { return(StatusCode((int)GlobalStatusCode.InternalServerError, GlobalStatusCode.InternalServerError.GetEnumName())); } if (response.Headers == null) { response.Headers = new Dictionary <string, string>(); } if (!response.Headers.ContainsKey("Content-Type")) { response.Headers.Add("Content-Type", "application/json"); } foreach (var header in response.Headers) { Response.Headers.Add(header.Key, header.Value); } return(StatusCode(response.Status, JsonConvert.DeserializeObject(response.Response))); } catch (Exception e) { return(StatusCode((int)GlobalStatusCode.InternalServerError, e)); } }
public static QSettingModel GetSetting(this IAppSetting appSetting, string name, string section = "QueueSettings") { return(appSetting.Get <List <QSettingModel> >(section) .First(s => s.Active && s.Name == name)); }
private SecurityKey GetSymmetricSecurityKey() { var symmetricKey = Convert.FromBase64String(_appSetting.Get("AuthSignKey")); return(new SymmetricSecurityKey(symmetricKey)); }
public static IEnumerable <QSettingModel> GetQSettings(this IAppSetting appSetting, string section = "QueueSettings") { return(appSetting.Get <List <QSettingModel> >(section)); }