internal static object ToJsonModel(Extension extension, Site site, string path) { if (extension == null) { return(null); } ExtensionId extensionId = new ExtensionId(site?.Id, path, extension.FileExtension); var obj = new { extension = extension.FileExtension.TrimStart(new char[] { '.' }), id = extensionId.Uuid, allow = extension.Allowed, request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path) }; return(Core.Environment.Hal.Apply(Defines.FileExtensionsResource.Guid, obj)); }
internal static object ToJsonModel(HiddenSegment segment, Site site, string path) { if (segment == null) { return(null); } SegmentId segmentId = new SegmentId(site?.Id, path, segment.Segment); var obj = new { segment = segment.Segment, id = segmentId.Uuid, request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path) }; return(Core.Environment.Hal.Apply(Defines.HiddenSegmentsResource.Guid, obj)); }
internal static object ToJsonModel(QueryStringRule queryString, Site site, string path) { if (queryString == null) { return(null); } QueryStringId id = new QueryStringId(site?.Id, path, queryString.QueryString); var obj = new { query_string = queryString.QueryString, id = id.Uuid, allow = queryString.Allow, request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path) }; return(Core.Environment.Hal.Apply(Defines.QueryStringResource.Guid, obj)); }
internal static object ToJsonModel(UrlRule url, Site site, string path) { if (url == null) { return(null); } UrlId urlId = new UrlId(site?.Id, path, url.Url); var obj = new { url = url.Url, id = urlId.Uuid, allow = url.Allow, request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path) }; return(Core.Environment.Hal.Apply(Defines.UrlsResource.Guid, obj)); }
internal static object ToJsonModel(HeaderLimit headerLimit, Site site, string path) { if (headerLimit == null) { return(null); } HeaderLimitId id = new HeaderLimitId(site?.Id, path, headerLimit.Header); var obj = new { header = headerLimit.Header, id = id.Uuid, size_limit = headerLimit.SizeLimit, request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path) }; return(Core.Environment.Hal.Apply(Defines.HeaderLimitsResource.Guid, obj)); }
internal static object ToJsonModel(Rule rule, Site site, string path, Fields fields, bool full) { if (rule == null) { return(null); } if (fields == null) { fields = Fields.All; } dynamic obj = new ExpandoObject(); // // name if (fields.Exists("name")) { obj.name = rule.Name; } // // id obj.id = new RuleId(site?.Id, path, rule.Name).Uuid; // // scan_url if (fields.Exists("scan_url")) { obj.scan_url = rule.ScanUrl; } // // scan_query_string if (fields.Exists("scan_query_string")) { obj.scan_query_string = rule.ScanQueryString; } // // headers if (fields.Exists("headers")) { obj.headers = rule.ScanHeaders.Select(scanHeader => scanHeader.RequestHeader); } // // file_extensions if (fields.Exists("file_extensions")) { obj.file_extensions = rule.AppliesTo.Select(a => a.FileExtension); } // // deny_strings if (fields.Exists("deny_strings")) { obj.deny_strings = rule.DenyStrings.Select(denyString => denyString.String); } // // request_filtering if (fields.Exists("request_filtering")) { obj.request_filtering = RequestFilteringHelper.ToJsonModelRef(site, path); } return(Core.Environment.Hal.Apply(Defines.RulesResource.Guid, obj, full)); }