/// <summary> /// Send data to the web server /// </summary> /// <returns></returns> private CleantalkResponse SendData(CleantalkRequest request, MethodType methodType) { string response; using (var webClient = new WebClient()) { webClient.Encoding = Encoding.UTF8; //get headers from httpContext var context = HttpContext.Current; if (context != null) { var restrictedHeaders = new[] { "Content-Length", "Connection" }; var h = context.Request.Headers; foreach (var v in h.Keys.Cast <string>() .Select(x => new { key = x, value = h[x] }) .Where(x => !restrictedHeaders.Contains(x.key))) { webClient.Headers.Add(v.key, v.value); } } webClient.Headers[HttpRequestHeader.ContentType] = @"application/x-www-form-urlencoded"; request.AllHeaders = WebHelper.HeadersSerialize(webClient.Headers); var postData = WebHelper.JsonSerialize(Preprocessing(request, methodType)); response = webClient.UploadString(ServerUrl, postData); } var result = WebHelper.JsonDeserialize <CleantalkResponse>(response); return(Postprocessing(result)); }
/// <summary> /// Processing request data before action /// </summary> /// <param name="request"></param> /// <param name="methodType"></param> /// <returns></returns> private static CleantalkRequest Preprocessing(CleantalkRequest request, MethodType methodType) { if (string.IsNullOrWhiteSpace(request.AuthKey)) { throw new ArgumentNullException("AuthKey is empty"); } switch (methodType) { case MethodType.check_message: //nothing to do break; case MethodType.check_newuser: if (string.IsNullOrWhiteSpace(request.SenderNickname)) { throw new ArgumentNullException("SenderNickname is empty"); } if (string.IsNullOrWhiteSpace(request.SenderEmail)) { throw new ArgumentNullException("SenderEmail is empty"); } break; case MethodType.send_feedback: if (string.IsNullOrWhiteSpace(request.Feedback)) { throw new ArgumentNullException("Feedback is empty"); } break; default: throw new ArgumentOutOfRangeException("methodType", methodType, null); } request.MethodName = methodType.ToString(); return(request); }
/// <summary> /// Send data to the web server /// </summary> /// <returns></returns> private CleantalkResponse SendData(CleantalkRequest request, MethodType methodType) { string response; using (var webClient = new WebClient()) { webClient.Encoding = Encoding.UTF8; //get headers from httpContext var context = HttpContext.Current; if (context != null) { var restrictedHeaders = new[] { "Content-Length", "Connection" }; var h = context.Request.Headers; foreach (var v in h.Keys.Cast<string>() .Select(x => new { key = x, value = h[x] }) .Where(x => !restrictedHeaders.Contains(x.key))) { webClient.Headers.Add(v.key, v.value); } } webClient.Headers[HttpRequestHeader.ContentType] = @"application/x-www-form-urlencoded"; request.AllHeaders = WebHelper.HeadersSerialize(webClient.Headers); var postData = WebHelper.JsonSerialize(Preprocessing(request, methodType)); response = webClient.UploadString(ServerUrl, postData); } var result = WebHelper.JsonDeserialize<CleantalkResponse>(response); return Postprocessing(result); }
/// <summary> /// Processing request data before action /// </summary> /// <param name="request"></param> /// <param name="methodType"></param> /// <returns></returns> private static CleantalkRequest Preprocessing(CleantalkRequest request, MethodType methodType) { if (string.IsNullOrWhiteSpace(request.AuthKey)) { throw new ArgumentNullException("AuthKey is empty"); } switch (methodType) { case MethodType.check_message: //nothing to do break; case MethodType.check_newuser: if (string.IsNullOrWhiteSpace(request.SenderNickname)) { throw new ArgumentNullException("SenderNickname is empty"); } if (string.IsNullOrWhiteSpace(request.SenderEmail)) { throw new ArgumentNullException("SenderEmail is empty"); } break; case MethodType.send_feedback: if (string.IsNullOrWhiteSpace(request.Feedback)) { throw new ArgumentNullException("Feedback is empty"); } break; default: throw new ArgumentOutOfRangeException("methodType", methodType, null); } request.MethodName = methodType.ToString(); return request; }
/// <summary> /// Function sends the results of manual moderation /// </summary> /// <param name="request"></param> /// <returns></returns> public CleantalkResponse SendFeedback(CleantalkRequest request) { return SendData(request, MethodType.send_feedback); }
/// <summary> /// Function checks whether it is possible to publish the message /// </summary> /// <param name="request"></param> /// <returns></returns> public CleantalkResponse CheckNewUser(CleantalkRequest request) { return SendData(request, MethodType.check_newuser); }
/// <summary> /// Function checks whether it is possible to publish the message /// </summary> /// <param name="request"></param> /// <returns></returns> public CleantalkResponse CheckMessage(CleantalkRequest request) { return SendData(request, MethodType.check_message); }
/// <summary> /// Function checks whether it is possible to publish the message /// </summary> /// <param name="request"></param> /// <returns></returns> public CleantalkResponse CheckNewUser(CleantalkRequest request) { return(SendData(request, MethodType.check_newuser)); }
/// <summary> /// Function checks whether it is possible to publish the message /// </summary> /// <param name="request"></param> /// <returns></returns> public CleantalkResponse CheckMessage(CleantalkRequest request) { return(SendData(request, MethodType.check_message)); }
/// <summary> /// Function sends the results of manual moderation /// </summary> /// <param name="request"></param> /// <returns></returns> public CleantalkResponse SendFeedback(CleantalkRequest request) { return(SendData(request, MethodType.send_feedback)); }