public async Task <ActionResult> Post(MyFilesPostRequest requst) { var userId = await GetAuthrizedUserId(); var data = await _CloudSpeedManager.GetMyFiles(userId, requst); return(Result(data)); }
public async Task <ApiResponse <PagedResult <MyFileInfo> > > GetMyFiles(string userId, MyFilesPostRequest request) { using (var scope = GlobalServices.Container.BeginLifetimeScope()) { var repository = scope.Resolve <ICloudSpeedRepository>(); var paramMap = new UploadParamMap() { UserId = userId }; var uploadLogs = await repository.GetUploadLogs(paramMap, request.Skip, request.Limit); var total = await repository.CountUploadLogs(paramMap); var myFiles = new List <MyFileInfo>(); foreach (var uploadLog in uploadLogs) { var path = _uploadSetting.GetStoragePath(uploadLog.DataKey); var fileName = await GetFileName(uploadLog.DataKey); var mimeType = fileName.GetMimeType(); var fileInfo = new FileInfo(path); var fileSize = (fileInfo.Exists ? fileInfo.Length : 0).ToFileSize(); var fileCid = await repository.GetFileCid(uploadLog.DataKey); myFiles.Add(new MyFileInfo { FileName = fileName, FileSize = fileSize, Id = uploadLog.Id, DataCid = fileCid?.Cid, Created = uploadLog.Created, Format = mimeType }); } return(ApiResponse.Ok(request.ToPagedResult(myFiles, total))); } }