public async Task <string> UploadFile(string filepath, string path, metadata metadata) { if (string.IsNullOrEmpty(path)) { path = ""; } byte[] bytes = System.IO.File.ReadAllBytes(filepath); string base64 = Convert.ToBase64String(bytes); SaveFileMessage q = new SaveFileMessage(); q.filename = System.IO.Path.Combine(path, System.IO.Path.GetFileName(filepath)); q.mimeType = MimeTypeHelper.GetMimeType(System.IO.Path.GetExtension(filepath)); q.file = base64; q.metadata = metadata; if (q.metadata == null) { q.metadata = new metadata(); } q.metadata.name = System.IO.Path.GetFileName(filepath); q.metadata.filename = q.filename; q.metadata.path = path; q = await q.SendMessage <SaveFileMessage>(this); if (!string.IsNullOrEmpty(q.error)) { throw new Exception(q.error); } return(q.id); }