/// <summary>
        /// uploads the file to DataVerse
        /// </summary>
        /// <param name="publishDataVerseFileModel">PublishDataVerseFileModel </param>
        /// <returns>File Id</returns>
        private void UploadFile(PublishDataVerseFileModel publishDataVerseFileModel)
        {
            string repositoryName = publishDataVerseFileModel.RepositoryModel.RepositoryName;
            DataFile dataFile = publishDataVerseFileModel.File;
            int fileId = publishDataVerseFileModel.File.FileInfo.FileId;
            string fileName = Path.GetFileNameWithoutExtension(dataFile.FileName);

            //We need to figure out how to substitute the following Curl Command with an http request sent using the .Net Framework Libraries
            //curl --data-binary @example.zip -H "Content-Disposition: filename=example.zip" -H "Content-Type: application/zip" -H "Packaging: http://purl.org/net/sword/package/SimpleZip" https://$USERNAME:$PASSWORD@$DVN_SERVER/dvn/api/data-deposit/v1/swordv2/edit-media/study/hdl:TEST/12345
        }
        /// <summary>
        /// Method to publish file
        /// </summary>
        /// <param name="postFileData">PublishMessage object</param>
        /// <returns>returns File Identifier</returns>
        public override string PublishFile(PublishMessage postFileData)
        {
            var file = this.GetFileByFileId(postFileData.FileId);
            IEnumerable<DM.FileColumnType> fileColumnTypes = null;
            IEnumerable<DM.FileColumnUnit> fileColumnUnits = null;
            OperationStatus status = null;

            Encoding encoding = Encoding.UTF8;
            string identifier = string.Empty;

            var repository = this.RepositoryService.GetRepositoryById(postFileData.RepositoryId);

            string authorization = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(postFileData.UserName /*UserName*/ + ":" + postFileData.Password /*Password*/));

            string baseRepoName = this.RepositoryDetails.GetBaseRepositoryName(repository.BaseRepositoryId);
            this.RepositoryAdapter = new DataVerseAdapter();

            var dataFile = this.GetDataFile(file);

            var repositoryModel = GetRepositoryModel(repository, authorization);

            PublishDataVerseFileModel publishDataVerseFileModel = new PublishDataVerseFileModel()
            {
                File = dataFile,
                RepositoryModel = repositoryModel,
                FileColumnTypes = fileColumnTypes,
                FileColumnUnits = fileColumnUnits,
            };

            status = this.RepositoryAdapter.PostFile(publishDataVerseFileModel);

            return identifier;
        }