private string CheckAndJoinAllowedMethods(string[] allowedMethods) { if (allowedMethods == null) { return(string.Empty); } StringBuilder sb = new StringBuilder(); foreach (var method in allowedMethods) { if (sb.Length > 0) { sb.Append(','); } XTable.CorsHttpMethods allowedCorsMethod = XTable.CorsHttpMethods.None; if (Enum.TryParse <XTable.CorsHttpMethods>(method, ignoreCase: true, out allowedCorsMethod)) { sb.Append(allowedCorsMethod); } else { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidHTTPMethod, method)); } } return(sb.ToString().ToUpperInvariant()); }
/// <summary> /// Parse CorsHttpMethods from OLD XSCL to String Array /// </summary> /// <param name="methods">CorsHttpMethods from XSCL</param> /// <returns>String Array</returns> private static string[] ConvertCorsHttpMethodToString(XTable.CorsHttpMethods methods) { List <string> methodList = new List <string>(); foreach (XTable.CorsHttpMethods methodValue in Enum.GetValues(typeof(XTable.CorsHttpMethods)).Cast <XTable.CorsHttpMethods>()) { if (methodValue != XTable.CorsHttpMethods.None && (methods & methodValue) != 0) { methodList.Add(methodValue.ToString()); } } return(methodList.ToArray()); }
private void SetAllowedMethods(XTable.CorsRule corsRule, string[] allowedMethods) { corsRule.AllowedMethods = XTable.CorsHttpMethods.None; if (null != allowedMethods) { foreach (var method in allowedMethods) { XTable.CorsHttpMethods allowedCorsMethod = XTable.CorsHttpMethods.None; if (Enum.TryParse <XTable.CorsHttpMethods>(method, true, out allowedCorsMethod)) { corsRule.AllowedMethods |= allowedCorsMethod; } else { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resources.InvalidHTTPMethod, method)); } } } }