public void Submit(SubmissionManifest parameters)
        {
            WebRequest req = WebRequest.Create(parameters.ResolvedTransport);

            if (req is HttpWebRequest)
            {
                HttpWebRequest   request   = (HttpWebRequest)req;
                MultipartBuilder multipart = new MultipartBuilder(request);

                ITarget assignment = parameters.Assignment;

                foreach (string key in assignment.TransportParameters.Keys)
                {
                    string value         = assignment.TransportParameters[key];
                    string resolvedValue = parameters.ResolveParameter(value);

                    if (key.StartsWith("$file."))
                    {
                        string trueKey = key.Substring("$file.".Length);

                        Stream stream = multipart.BeginWriteFile(trueKey,
                                                                 resolvedValue, "application/octet-stream");
                        parameters.PackageContentsIntoStream(stream);
                        multipart.EndWriteFile();
                    }
                    else
                    {
                        multipart.WriteParameter(key, resolvedValue);
                    }
                }

                multipart.Close();

                WebResponse response   = request.GetResponse();
                Stream      respStream = response.GetResponseStream();

                StringBuilder responseHolder = new StringBuilder();
                StreamReader  reader         = new StreamReader(respStream, Encoding.UTF8);
                char[]        buffer         = new char[BufferSize];

                int len;
                while ((len = reader.Read(buffer, 0, BufferSize)) > 0)
                {
                    responseHolder.Append(buffer, 0, len);
                }

                response.Close();

                this.response = responseHolder.ToString();
            }
        }
        public void Submit(SubmissionManifest parameters)
        {
            WebRequest req = WebRequest.Create(parameters.ResolvedTransport);

            if (req is HttpWebRequest)
            {
                HttpWebRequest request = (HttpWebRequest)req;
                MultipartBuilder multipart = new MultipartBuilder(request);

                ITarget assignment = parameters.Assignment;

                foreach (string key in assignment.TransportParameters.Keys)
                {
                    string value = assignment.TransportParameters[key];
                    string resolvedValue = parameters.ResolveParameter(value);

                    if (key.StartsWith("$file."))
                    {
                        string trueKey = key.Substring("$file.".Length);

                        Stream stream = multipart.BeginWriteFile(trueKey,
                            resolvedValue, "application/octet-stream");
                        parameters.PackageContentsIntoStream(stream);
                        multipart.EndWriteFile();
                    }
                    else
                    {
                        multipart.WriteParameter(key, resolvedValue);
                    }
                }

                multipart.Close();

                WebResponse response = request.GetResponse();
                Stream respStream = response.GetResponseStream();

                StringBuilder responseHolder = new StringBuilder();
                StreamReader reader = new StreamReader(respStream, Encoding.UTF8);
                char[] buffer = new char[BufferSize];

                int len;
                while ((len = reader.Read(buffer, 0, BufferSize)) > 0)
                {
                    responseHolder.Append(buffer, 0, len);
                }

                response.Close();

                this.response = responseHolder.ToString();
            }
        }
        //  -------------------------------------------------------------------
        public void Submit(SubmissionManifest manifest)
        {
            WebRequest req = WebRequest.Create(manifest.ResolvedTransport);

            if (req is FileWebRequest)
            {
                FileWebRequest request = (FileWebRequest)req;

                request.Method = WebRequestMethods.File.UploadFile;

                Stream stream = request.GetRequestStream();
                manifest.PackageContentsIntoStream(stream);
                stream.Close();
            }
        }
        public void Submit(SubmissionManifest manifest)
        {
            WebRequest req =
                WebRequest.Create(manifest.ResolvedTransport);

            if (req is FtpWebRequest)
            {
                FtpWebRequest request = (FtpWebRequest)req;

                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.UseBinary = true;

                Stream stream = request.GetRequestStream();
                manifest.PackageContentsIntoStream(stream);
                stream.Close();

                // Send the request by getting the response.

                request.GetResponse();
            }
        }
        public void Submit(SubmissionManifest manifest)
        {
            WebRequest req =
                WebRequest.Create(manifest.ResolvedTransport);

            if (req is FtpWebRequest)
            {
                FtpWebRequest request = (FtpWebRequest)req;

                request.Method    = WebRequestMethods.Ftp.UploadFile;
                request.UseBinary = true;

                Stream stream = request.GetRequestStream();
                manifest.PackageContentsIntoStream(stream);
                stream.Close();

                // Send the request by getting the response.

                request.GetResponse();
            }
        }
Beispiel #6
0
        //  -------------------------------------------------------------------
        /// <summary>
        /// Performs the actual submission of the projects.
        /// </summary>
        private void DoSubmission()
        {
            TargetTreeNode node =
                (TargetTreeNode)submissionTargetsTree.SelectedNode;

            SubmissionManifest parameters = new SubmissionManifest();

            parameters.Assignment       = (ITargetAssignment)node.Target;
            parameters.Username         = usernameField.Text;
            parameters.Password         = passwordField.Text;
            parameters.SubmittableItems = submittables;

            Exception exception = null;

            BackgroundWorkerDialog dialog = new BackgroundWorkerDialog(
                Messages.SendingSubmission, true,
                delegate(object sender, DoWorkEventArgs e)
            {
                try
                {
                    engine.SubmitProject(parameters);
                }
                catch (Exception ex)
                {
                    exception = ex;
                }
            });

            dialog.ShowDialog(this);

            if (exception == null)
            {
                string message = engine.HasResponse ?
                                 Messages.ResponseClose : Messages.NoResponseClose;

                SetSubmissionResults(SubmissionResultCode.Success, message);
            }
            else if (exception is RequiredFilesMissingException)
            {
                RequiredFilesMissingException e =
                    (RequiredFilesMissingException)exception;

                StringBuilder builder = new StringBuilder();
                builder.Append(Messages.WizardMissingFilesPreamble);

                foreach (string file in e.MissingFiles)
                {
                    builder.Append(String.Format(
                                       Messages.WizardMissingFilesListItem, file));
                }

                SetSubmissionResults(SubmissionResultCode.Incomplete,
                                     builder.ToString());
            }
            else if (exception is ProtocolNotRegisteredException)
            {
                ProtocolNotRegisteredException e =
                    (ProtocolNotRegisteredException)exception;

                SetSubmissionResults(SubmissionResultCode.Error,
                                     String.Format(Messages.ProtocolNotFound, e.Scheme));
            }
            else
            {
                SetSubmissionResults(SubmissionResultCode.Error,
                                     exception.Message);
            }
        }