public async Task <UploadParamMap> ToParamMapDTO() { if (ParamMap == null) { return(new UploadParamMap()); } var paramMap = new UploadParamMap(); var memberManager = GlobalServices.ServiceProvider.GetService <UserManager <Member> >(); if (!string.IsNullOrEmpty(ParamMap.UserName)) { var member = await memberManager.FindByNameAsync(ParamMap.UserName); if (member != null) { paramMap.UserId = member.Id; } else { paramMap.UserId = System.Guid.NewGuid().ToString(); } } return(paramMap); }
public async Task <IEnumerable <UploadLog> > GetUploadLogs(UploadParamMap paramMap, int skip, int limit) { var query = CreateUploadLogQuery(paramMap); var myFiles = await query.AsNoTracking().OrderByDescending(a => a.Created).Skip(skip).Take(limit).ToListAsync(); return(myFiles); }
private IQueryable <UploadLog> CreateUploadLogQuery(UploadParamMap paramMap) { var query = DbContext.UploadLogs.AsQueryable(); if (!string.IsNullOrEmpty(paramMap.UserId)) { query = query.Where(q => q.UserId == paramMap.UserId); } return(query); }
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))); } }
public Task <int> CountUploadLogs(UploadParamMap paramMap) { var query = CreateUploadLogQuery(paramMap); return(query.CountAsync()); }