public static MyRequestContext SetQueryInfo(this MyRequestContext context, HttpRequest httpRequest) { var theGroup = context.GetOrCreate(context.GetGroupName_QueryInfos()); var queryCollection = httpRequest.Query; var keys = queryCollection.Keys; foreach (var key in keys) { StringValues values; if (!queryCollection.TryGetValue(key, out values)) { theGroup.Items[key] = null; } else { values = values.Where(x => !string.IsNullOrWhiteSpace(x)).ToArray(); foreach (var value in values) { //set by last one theGroup.Items[key] = value; } } } return(context); }
public static MyRequestContext SetUserInfo(this MyRequestContext context, HttpRequest httpRequest) { var theGroup = context.GetOrCreate(context.GetGroupName_UserInfos()); //todo return(context); }
public static MyRouteInfo GetRouteInfo(this MyRequestContext context) { var info = new MyRouteInfo(); var theGroup = context.GetOrCreate(context.GetGroupName_RouteInfos()); theGroup.Items.SetProperties(info); return(info); }
public static MyRequestContext SetRouteInfo(this MyRequestContext context, RouteData routeData) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var theGroup = context.GetOrCreate(context.GetGroupName_RouteInfos()); foreach (var item in routeData.DataTokens) { theGroup.Items[item.Key] = item.Value?.ToString(); } foreach (var item in routeData.Values) { theGroup.Items[item.Key] = item.Value?.ToString(); } return(context); }
public static MyRequestContext GetMyRequestContext(this HttpContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (context.Items[MyRequestContextCacheKey] != null) { return((MyRequestContext)context.Items[MyRequestContextCacheKey]); } var requestContext = MyRequestContext.Create() .SetRouteInfo(context.GetRouteData()) .SetQueryInfo(context.Request) .SetUserInfo(context.Request); context.Items[MyRequestContextCacheKey] = requestContext; return(requestContext); }
internal static MyContextGroup GetOrCreate(this MyRequestContext context, string group) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (string.IsNullOrWhiteSpace(group)) { throw new ArgumentNullException(nameof(group)); } var theGroup = context.Groups.SingleOrDefault(x => x.GroupName == group); if (theGroup == null) { theGroup = new MyContextGroup { GroupName = @group }; context.Groups.Add(theGroup); } return(theGroup); }
public static string GetGroupName_RouteInfos(this MyRequestContext context) { return(Group_RouteInfos); }
public static MyRequestContext Create() { var context = new MyRequestContext(); return(context); }