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; }
/// <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; }