public VideoUploadCompletedRequest CreateVideoUploadCompletedRequest(NotifyVideoUploadCompletedForm notifyVideoUploadCompletedForm) { var buffer = Encoding.GetEncoding("utf-8").GetBytes(JsonConvert.SerializeObject(notifyVideoUploadCompletedForm)); Stream content = new MemoryStream(); content.Write(buffer, 0, buffer.Length); content.Flush(); content.Seek(0, SeekOrigin.Begin); return(SetRequestCookie(new VideoUploadCompletedRequest(_startupParameters.Domain, content))); }
private void Upload() { if (Uploading) { return; } Uploading = true; Task.Run(() => { while (true) { var uploadTask = _taskList.Where(item => item.IsUpload && !item.IsFail && !item.IsCompleted).FirstOrDefault(); if (uploadTask == null) { uploadTask = _taskList.Where(item => item.IsUpload && item.IsFail).OrderBy(item => item.FailedTime).FirstOrDefault(); } if (uploadTask == null) { break; } OnUpload?.Invoke(uploadTask); if (storages == null || !storages.Any()) { var result = _storageProvider.GetStorages(); if (!result.Item1) { uploadTask.UploadStatus = "无可用存储"; break; } storages = result.Item2.Item1; } foreach (var storage in storages) { if (uploadTask.UploadedStorage.ContainsKey(storage.StorageInfo.ID)) { if (uploadTask.UploadedStorage[storage.StorageInfo.ID]) { continue; } } else { uploadTask.UploadedStorage.Add(storage.StorageInfo.ID, false); } storage.UploadFile(uploadTask); } if (!uploadTask.UploadedStorage.Any(item => !item.Value)) { var notifyVideoUploadCompletedForm = new NotifyVideoUploadCompletedForm() { RecordID = uploadTask.RecordInfo.ScheduleId, videoIndex = uploadTask.RecordInfo.Index, Duration = (int)uploadTask.RecordInfo.Duration, }; foreach (var item in uploadTask.Results) { notifyVideoUploadCompletedForm.Storages.Add(item); } var result = _serviceClient.GetResponse(_webPlatformApiFactory.CreateVideoUploadCompletedRequest(notifyVideoUploadCompletedForm)); uploadTask.IsCompleted = result.Success; uploadTask.UploadStatus = "上传完成"; } Thread.Sleep(500); } Uploading = false; }); }