private void ConfigureForSimpleUpload(
     HttpRequestConfiguration requestConfig,
     string folderKey = null,
     MediaFireActionOnDuplicate actionOnDuplicate = MediaFireActionOnDuplicate.Keep,
     DateTime? modificationTime = null
     )
 {
     requestConfig
         .Parameter(MediaFireApiParameters.FolderKey, folderKey)
         .Parameter(MediaFireApiParameters.ActionOnDuplicate, actionOnDuplicate.ToApiParamenter())
         .Parameter(MediaFireApiParameters.ModificationTime, modificationTime);
 }
        public async Task<MediaFireUploadConfiguration> GetUploadConfiguration(
            string fileName,
            long size,
            string folderKey = null,
            MediaFireActionOnDuplicate actionOnDuplicate = MediaFireActionOnDuplicate.Keep,
            DateTime? modificationTime = null)
        {
            var descriptor = new MediaFireUploadConfiguration();

            var requestConfig = await RequestController.CreateHttpRequest(MediaFireApiUploadMethods.Simple);

            ConfigureForSimpleUpload(requestConfig, folderKey, actionOnDuplicate, modificationTime);

            descriptor.Endpoint = requestConfig.GetConfiguredPath();
            descriptor.RequestUrl = RequestController.RemoveBaseUrlFromUrl(descriptor.Endpoint);

            descriptor.RequestHeaders.Add(new KeyValuePair<string, string>(MediaFireApiConstants.FileNameHeader, fileName));
            descriptor.RequestHeaders.Add(new KeyValuePair<string, string>(MediaFireApiConstants.FileSizeHeader, size.ToString()));
            descriptor.RequestHeaders.Add(new KeyValuePair<string, string>(MediaFireApiConstants.ContentTypeHeader, MediaFireApiConstants.SimpleUploadContentTypeValue));

            descriptor.Size = size;
            return descriptor;
        }