static public Model.FileRecord uploadFile(VmosoSession session, String filePath, String title, String description, bool dominantActivity) { try { String url = session.Host + "/up/file"; String userAgent = session.GetApiClient().Configuration.UserAgent; WebClient client = new WebClient(); client.Headers.Add("X-CV-Authorization", session.GetAuthorizationHeader()); client.Headers.Add("User-Agent", userAgent); byte[] response = client.UploadFile(url, filePath); var jsonString = System.Text.Encoding.Default.GetString(response); dynamic dynObj = JsonConvert.DeserializeObject(jsonString); var file = dynObj[0]; String fileName = file.name; String fileDownloadId = file.fileDownloadId; String mimeType = file.mimeType; int fileSize = file.filesize; FileRecord fr = new FileRecord(); fr.Type = "file"; fr.Name = title; fr.Description = description; fr.Filename = "1"; fr.Originalfilename = fileName; fr.SiteSelected = "1"; fr.FilestoreDirRoot = "1"; fr.FilestoreFilestore = fileDownloadId; fr.Mimetype = mimeType; fr.Filesize = fileSize; fr.Downloadable = "1"; fr.Simpletype = "1"; fr.DvaultItemFlag = "1"; fr.DvaultItemStatus = "1"; fr.BvrevVersion = 1; fr.BvrevLastUpdater = 1; fr.Trashed = "0"; FileApi fileApi = new FileApi(session.GetApiClient()); CreateFileInput createFileInput = new CreateFileInput(fr, dominantActivity, null); CreateFileResult createFileResult = fileApi.CreateFile(createFileInput); if (createFileResult.Hdr.Rc == 0) { return(createFileResult.File); } else { throw new Exception("Error uploading file. Rc=" + createFileResult.Hdr.Rc); } } catch (Exception ex) { throw new Exception("Error uploading file", ex); } }