123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- using MiniWebApi.Network;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Web;
- using Vinno.IUS.Common.Log;
- namespace Vinno.vCloud.Disk
- {
- public static class ApiExtends
- {
- private static ViewEngine viewEngine = new ViewEngine();
- /// <summary>
- /// 验证是否为空,空返回true
- /// </summary>
- /// <param name="context"></param>
- /// <param name="param"></param>
- /// <param name="paramName"></param>
- /// <param name="contentType"></param>
- /// <param name="pageName"></param>
- /// <returns></returns>
- public static bool VerificationIsEmpty(this WebApiHttpContext context, string param, string paramName, string contentType = "html", string pageName = "PageError.html")
- {
- bool verificationResult = false;
- var errorMsg = string.Format("Param {0} is empty", paramName);
- if (string.IsNullOrWhiteSpace(param))
- {
- context.PageResponse(contentType, pageName, new { ErrorMsg = errorMsg });
- verificationResult = true;
- }
- return verificationResult;
- }
- /// <summary>
- /// 验证是否包含特殊字符,包含返回true
- /// </summary>
- /// <param name="context"></param>
- /// <param name="param"></param>
- /// <param name="paramName"></param>
- /// <param name="contentType"></param>
- /// <param name="pageName"></param>
- /// <returns></returns>
- public static bool VerificationSpecialChar(this WebApiHttpContext context, string param, string paramName, string contentType = "html", string pageName = "PageError.html")
- {
- bool verificationResult = false;
- var errorMsg = string.Format("Param {0} are not allowed to have special characters", paramName);
- if (Regex.IsMatch(param, "[^0-9a-zA-Z]+"))
- {
- context.PageResponse(contentType, pageName, new { ErrorMsg = errorMsg });
- verificationResult = true;
- }
- return verificationResult;
- }
- /// <summary>
- /// 验证是否小于0 ,小于0返回true;
- /// </summary>
- /// <param name="context"></param>
- /// <param name="param"></param>
- /// <param name="paramName"></param>
- /// <param name="contentType"></param>
- /// <param name="pageName"></param>
- /// <returns></returns>
- public static bool VerificationLessThanZero(this WebApiHttpContext context, string param, string paramName, string contentType = "html", string pageName = "PageError.html")
- {
- bool verificationResult = false;
- var errorMsg = string.Format("Param {0} must greater than zero", paramName);
- double doubleTotalAmount;
- double.TryParse(param, out doubleTotalAmount);
- if (doubleTotalAmount <= 0)
- {
- context.PageResponse(contentType, pageName, new { ErrorMsg = errorMsg });
- verificationResult = true;
- }
- return verificationResult;
- }
- /// <summary>
- /// 写入响应数据
- /// </summary>
- /// <param name="context"></param>
- /// <param name="contentType"></param>
- /// <param name="pageName"></param>
- /// <param name="model"></param>
- /// <returns></returns>
- public static void PageResponse(this WebApiHttpContext context, string contentType, string pageName, object model)
- {
- switch (contentType)
- {
- case "html":
- string html = Encoding.UTF8.GetString(viewEngine.GetSource(pageName, contentType, model).ToArray());
- context.Response.ContentType = "text/html";
- context.Response.Write(Encoding.UTF8.GetBytes(html));
- break;
- case "json":
- context.Response.Json(model);
- break;
- }
- }
- /// <summary>
- /// 获取Get参数
- /// </summary>
- /// <param name="context"></param>
- /// <param name="keyName"></param>
- /// <param name="defaultValue"></param>
- /// <returns></returns>
- public static string GetParam(this WebApiHttpContext context, string keyName, string defaultValue = "")
- {
- var param = context.Request.QueryString.Get(keyName).XssEncode();
- return !string.IsNullOrWhiteSpace(param) ? param : defaultValue;
- }
- /// <summary>
- /// 获取Post参数
- /// </summary>
- /// <param name="context"></param>
- /// <returns></returns>
- public static Dictionary<string, object> GetParams(this WebApiHttpContext context)
- {
- try
- {
- var postContent = context.Request.GetInputStreamValue();
- Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
- var uriParams = postContent;
- if (uriParams != null)
- {
- var paramsArr = uriParams.Split('&');
- foreach (string param in paramsArr)
- {
- var keyValue = param.Split('=');
- var key = HttpUtility.UrlDecode(keyValue[0]).Replace("[]", "");
- var value = keyValue.Length > 1 ? HttpUtility.UrlDecode(keyValue[1]) : string.Empty;
- if (keyValuePairs.Keys.Contains(key))
- {
- if (keyValuePairs[key] is List<string> pairs)
- {
- pairs.Add(value);
- }
- else
- {
- List<string> newPairs = new List<string>();
- var convertValue = keyValuePairs[key] as string;
- newPairs.Add(convertValue);
- newPairs.Add(value);
- keyValuePairs[key] = newPairs;
- }
- }
- else
- {
- keyValuePairs.Add(key, value);
- }
- }
- }
- return keyValuePairs;
- }
- catch (Exception ex)
- {
- Logger.WriteLineError("GetParams error:" + ex.Message + "|" + ex.StackTrace);
- return new Dictionary<string, object>();
- }
- }
- /// <summary>
- /// 获取Dictionary参数
- /// </summary>
- /// <param name="keyValuePairs"></param>
- /// <param name="keyName"></param>
- /// <param name="defaultValue"></param>
- /// <returns></returns>
- public static string GetStringValue(this Dictionary<string, object> keyValuePairs, string keyName, string defaultValue = "")
- {
- return GetValue(keyValuePairs, keyName, defaultValue);
- }
- /// <summary>
- /// 获取Dictionary参数
- /// </summary>
- /// <param name="keyValuePairs"></param>
- /// <param name="keyName"></param>
- /// <param name="defaultValue"></param>
- /// <returns></returns>
- public static List<string> GetArrayValue(this Dictionary<string, object> keyValuePairs, string keyName)
- {
- return GetArrayValueData(keyValuePairs, keyName);
- }
- /// <summary>
- /// 获取Dictionary参数
- /// </summary>
- /// <param name="keyValuePairs"></param>
- /// <param name="keyName"></param>
- /// <param name="defaultValue"></param>
- /// <returns></returns>
- private static List<string> GetArrayValueData(Dictionary<string, object> keyValuePairs, string keyName)
- {
- var list = GetValue(keyValuePairs, keyName, new List<string>());
- if (list == null || list.Count == 0)
- {
- var onlyValue = GetValue(keyValuePairs, keyName, string.Empty);
- if (!onlyValue.IsEmpty())
- {
- list = new List<string> { onlyValue };
- }
- }
- return list;
- }
- /// <summary>
- /// 获取Dictionary参数
- /// </summary>
- /// <param name="keyValuePairs"></param>
- /// <param name="keyName"></param>
- /// <param name="defaultValue"></param>
- /// <returns></returns>
- public static T GetValue<T>(this Dictionary<string, object> keyValuePairs, string keyName, T defaultValue = null) where T : class
- {
- T paramValue = defaultValue ?? default(T);
- try
- {
- paramValue = (keyValuePairs[keyName] as T);
- if (paramValue == null)
- {
- paramValue = defaultValue;
- }
- }
- catch(Exception ex)
- {
- Logger.WriteLineError("GetValue error:" + ex.Message + "|" + ex.StackTrace);
- }
- return paramValue;
- }
- /// <summary>
- /// 获取SortedDictionary参数
- /// </summary>
- /// <param name="keyValuePairs"></param>
- /// <param name="keyName"></param>
- /// <param name="defaultValue"></param>
- /// <returns></returns>
- public static string GetValue(this SortedDictionary<string, object> keyValuePairs, string keyName, string defaultValue = "")
- {
- string paramValue = defaultValue;
- try
- {
- paramValue = keyValuePairs[keyName].ToStringEx().XssEncode();
- if (string.IsNullOrWhiteSpace(paramValue))
- {
- paramValue = defaultValue;
- }
- }
- catch (Exception ex)
- {
- Logger.WriteLineError("GetValue error:" + ex.Message + "|" + ex.StackTrace);
- }
- return paramValue;
- }
- /// <summary>
- /// ToString扩展函数
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="obj"></param>
- /// <param name="defaultValue"></param>
- /// <returns></returns>
- public static string ToStringEx<T>(this T obj, string defaultValue = "")
- {
- if (obj == null)
- {
- return defaultValue;
- }
- return obj.ToString();
- }
- }
- }
|