Exemplo n.º 1
0
        public async Task <ActionResult> Post(MyFilesPostRequest requst)
        {
            var userId = await GetAuthrizedUserId();

            var data = await _CloudSpeedManager.GetMyFiles(userId, requst);

            return(Result(data));
        }
Exemplo n.º 2
0
        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)));
            }
        }