System.Net.Tests.FtpWebRequestTest.Do C# (CSharp) Method

Do() private static method

private static Do ( FtpExecutionMode mode, string method, string uri, byte requestBody, string renameTo = null ) : byte[]
mode FtpExecutionMode
method string
uri string
requestBody byte
renameTo string
return byte[]
        private static byte[] Do(FtpExecutionMode mode, string method, string uri, byte[] requestBody, string renameTo = null)
        {
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);

            request.EnableSsl = mode.UseSsl;
            request.UsePassive = mode.UsePassive;

            request.Method = method;
            if (renameTo != null)
            {
                request.RenameTo = renameTo;
            }

            MemoryStream requestMemStream = null;
            if (requestBody != null)
            {
                requestMemStream = new MemoryStream(requestBody);
            }

            if (mode.UseAsync)
            {
                try
                {
                    Task<MemoryStream> t = DoAsync(request, requestMemStream);
                    return t.Result.ToArray();
                }
                catch (AggregateException e)
                {
                    throw e.InnerException;
                }
            }
            else if (mode.UseOldStyleAsync)
            {
                return DoOldStyleAsync(request, requestMemStream).ToArray();
            }
            else
            {
                return DoSync(request, requestMemStream).ToArray();
            }
        }