コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }