Ejemplo n.º 1
0
        internal OverwriteFileResponse ParseOverwriteFileResponseMessage(string message)
        {
            OverwriteFileResponse response = new OverwriteFileResponse();
            XDocument doc = XDocument.Parse(message);

            XElement filesElement = GetFilesElement(doc.Root);
            XElement statusElement = GetStatusElement(doc.Root);

            IEnumerable<XElement> fileElements = GetFileElements(filesElement);

            File file;
            UploadFileError error;
            foreach (XElement fileElement in fileElements)
            {
                ParseFileElement(fileElement, out file, out error);

                response.UploadedFileStatus.Add(file, error);
            }

            response.Status = ParseOverwriteFileStatus(statusElement.Value);

            return response;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Overwrites existing file with the new one
        /// </summary>
        /// <param name="filePath">Path to new file</param>
        /// <param name="fileID">ID of the old file to overwrite</param>
        /// <param name="isFileShared">Indicates if uploaded file should be marked as shared</param>
        /// <param name="message">Text of the message to send in a notification email to all addresses in the <paramref name="emailsToNotify"/> list</param>
        /// <param name="emailsToNotify">List of email addresses to notify about newly uploaded files</param>
        /// <returns>Operation status</returns>
        public OverwriteFileResponse OverwriteFile(
            string filePath,
            long fileID,
            bool isFileShared,
            string message,
            string[] emailsToNotify)
        {
            MultipartWebRequest request = new MultipartWebRequest(string.Format(OVERWRITE_FILE_URI_TEMPLATE, _token, fileID), Proxy);
            OverwriteFileResponse response;

            try
            {
                string serverResponse = request.SubmitFiles(new[] { filePath }, isFileShared, message, emailsToNotify);
                response = MessageParser.Instance.ParseOverwriteFileResponseMessage(serverResponse);
            }
            catch (Exception ex)
            {
                response = new OverwriteFileResponse
                           	{
                           		Error = ex,
                           		Status = OverwriteFileStatus.Failed,
                           		UploadedFileStatus = new Dictionary<File, UploadFileError>()
                           	};
            }

            return response;
        }