private ActionResult InternalCallSoapService(SoapServiceRequest request) { // TODO: Add SSO handling SoapResult result = new SoapResult(); try { // 2017/03/02 -- Move the code to SoapHelper. var uploadResult = SoapHelper.CallSoapService(request, GetCredentials(request.url)); result.resultBody = GetBodyFromSoapResult(uploadResult); result.success = true; } catch (WebException ex) { if (ex.Response == null) { result.message = String.Format("The request to the service failed with an error: {0}", ex.Message); } else { var fault = GetSoapFault(ex); result.fault = fault; result.message = !String.IsNullOrWhiteSpace(fault.faultstring) ? String.Format("The service failed with an error: {0}", fault.faultstring) : String.Format("The request failed with status {0}", fault.faultcode); } } catch (Exception ex) { result.message = String.Format("The request to the service failed with an error: {0}", ex.Message); } return(new ObjectResult <SoapResult>(result)); }
public ActionResult CallCrossDomain(CrossDomainRequest request) { SoapResult soapResult; if (request == null || String.IsNullOrWhiteSpace(request.Url)) { soapResult = new SoapResult { message = "Request url cannot be empty." }; return(Json(soapResult, JsonRequestBehavior.AllowGet)); } var responseData = string.Empty; var errorMessage = string.Empty; try { var userName = request.Username; var password = request.Password; var content = request.Content; var webClient = new WebClient(); if (!String.IsNullOrWhiteSpace(userName) && !String.IsNullOrWhiteSpace(password)) { webClient.Credentials = new NetworkCredential(userName, password); } else { webClient.UseDefaultCredentials = true; } if (!String.IsNullOrWhiteSpace(request.ContentType)) { webClient.Headers[HttpRequestHeader.ContentType] = request.ContentType; } if (!String.IsNullOrWhiteSpace(content)) { responseData = webClient.UploadString(request.Url, request.Method, content); } else { responseData = webClient.DownloadStringDetectEncoding(request.Url); } } catch (Exception ex) { errorMessage = "There was an error while performing this operation."; responseData = ex.ToString(); } soapResult = new SoapResult { message = errorMessage, resultBody = responseData, success = String.IsNullOrWhiteSpace(errorMessage) }; return(Json(soapResult, JsonRequestBehavior.AllowGet)); }
public ActionResult SubmitToLibrary(SharePointRequest request) { var libraryLocation = request.location; var soapResult = new SoapResult(); if (String.IsNullOrWhiteSpace(request.file) || String.IsNullOrWhiteSpace(request.fileName) || String.IsNullOrWhiteSpace(libraryLocation)) { soapResult = new SoapResult { message = "Location, file name and xml data are required." }; return(Json(soapResult, JsonRequestBehavior.AllowGet)); } var isUploaded = false; var message = string.Empty; var errorMessage = string.Empty; try { using (var clientContext = GetClientContext(libraryLocation, true)) { var docLibrary = GetLibrary(libraryLocation, clientContext, out errorMessage); if (docLibrary != null) { var fileUrl = String.Format("{0}/{1}", docLibrary.ServerRelativeUrl, request.fileName); var file = GetFile(clientContext, fileUrl, out errorMessage); if (file == null || request.overwrite) { isUploaded = UploadFile( request.file, docLibrary.ServerRelativeUrl, request.fileName, request.overwrite, request.isBase64, clientContext.Url, clientContext, out errorMessage); message = isUploaded ? "The file was uploaded successfully." : String.Format("The file could not be uploaded to {0}", request.location); } else { message = String.Format("File already exists at {0}", request.location); } } else { message = String.Format("Document library not found: {0}", request.location); } } } catch (Exception ex) { message = String.Format("The file could not be uploaded to {0}", request.location); errorMessage += ex.ToString(); } soapResult.success = isUploaded; soapResult.message = message; soapResult.resultBody = errorMessage; return(Json(soapResult, JsonRequestBehavior.AllowGet)); }