private void FileNewCopyFinished(MultipartRequestUploadResponse uploadFilesResponse)
        {
            object[] state = (object[])uploadFilesResponse.UserState;
            OperationFinished<FileNewCopyResponse> fileNewCopyCompleted = (OperationFinished<FileNewCopyResponse>)state[0];

            FileNewCopyResponse fileNewCopyResponse = uploadFilesResponse.Error == null
                                                        ?
                                                            MessageParser.Instance.ParseFileNewCopyResponseMessage(
                                                                uploadFilesResponse.Status)
                                                        :
                                                            new FileNewCopyResponse();

            fileNewCopyResponse.UserState = state[1];
            fileNewCopyResponse.Error = uploadFilesResponse.Error;

            fileNewCopyCompleted(fileNewCopyResponse);
        }
Пример #2
0
        private void OverwriteFileFinished(MultipartRequestUploadResponse uploadFilesResponse)
        {
            object[] state = (object[]) uploadFilesResponse.UserState;
            OperationFinished<OverwriteFileResponse> overwriteFileCompleted = (OperationFinished<OverwriteFileResponse>) state[0];

            OverwriteFileResponse overwriteFileResponse = uploadFilesResponse.Error == null
                                                          	?
                                                          		MessageParser.Instance.ParseOverwriteFileResponseMessage(
                                                          			uploadFilesResponse.Status)
                                                          	:
                                                          		new OverwriteFileResponse();

            overwriteFileResponse.UserState = state[1];
            overwriteFileResponse.Error = uploadFilesResponse.Error;

            overwriteFileCompleted(overwriteFileResponse);
        }
Пример #3
0
        private void UploadFilesFinished(MultipartRequestUploadResponse uploadFilesResponse)
        {
            object[] state = (object[]) uploadFilesResponse.UserState;
            OperationFinished<UploadFileResponse> filesUploadCompleted = (OperationFinished<UploadFileResponse>) state[0];

            UploadFileResponse response = uploadFilesResponse.Error == null
                                          	?
                                          		MessageParser.Instance.ParseUploadResponseMessage(uploadFilesResponse.Status)
                                          	:
                                          		new UploadFileResponse();

            response.FolderID = (long) state[2];
            response.UserState = state[1];
            response.Error = uploadFilesResponse.Error;

            filesUploadCompleted(response);
        }
        private void UploadCompleted(IAsyncResult asyncResult)
        {
            State state = (State) asyncResult.AsyncState;
            bool stopExecution = false;

            MultipartRequestUploadResponse response = new MultipartRequestUploadResponse
                                                      	{
                                                      		UserState = state.UserState
                                                      	};

            try
            {
                state.Writer.EndWrite(asyncResult);
            }
            catch(Exception ex)
            {
                response.Error = ex;
                stopExecution = true;
            }
            finally
            {
                try
                {
                    state.Writer.Close();
                    state.Writer.Dispose();
                }
                catch
                { }
            }

            if (!stopExecution)
            {
                HttpWebResponse myHttpWebResponse = null;

                try
                {
                    myHttpWebResponse = (HttpWebResponse)state.Request.GetResponse();

                    using (Stream responseStream = myHttpWebResponse.GetResponseStream())
                    {
                        TextReader reader = new StreamReader(responseStream);

                        response.Status = reader.ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    response.Error = ex;
                }
                finally
                {
                    if(myHttpWebResponse != null)
                    {
                        try
                        {
                            myHttpWebResponse.Close();
                            ((IDisposable)myHttpWebResponse).Dispose();
                        }
                        catch
                        { }
                    }
                }
            }

            state.CallbackMethod(response);
        }