public async Task <ApiResponse <PagedResult <DealsListItem> > > GetDeals(DealsGetListRequest request) { using (var scope = GlobalServices.Container.BeginLifetimeScope()) { var repository = scope.Resolve <ICloudSpeedRepository>(); var paramMap = request.ToParamMapDTO(); var total = await repository.CountFileDeals(paramMap); var entities = await repository.GetFileDeals(paramMap, request.Skip, request.Limit); var result = entities.Select(entity => new DealsListItem { Id = entity.Id, Cid = entity.Cid, DealId = entity.DealId, Miner = entity.Miner, Status = entity.Status.ToString(), Error = entity.Error, Created = entity.Created, Updated = entity.Updated, }).ToList().AsEnumerable(); foreach (var item in result) { var fileCid = await repository.GetFileCidsByCid(item.Cid); var fileName = await repository.GetFileName(fileCid.Id); var path = _uploadSetting.GetStoragePath(fileCid.Id); var mimeType = fileName.GetMimeType(); item.FileName = fileName; item.Format = mimeType; item.FileSize = new FileInfo(path).ToFileSize(); } return(ApiResponse.Ok(request.ToPagedResult(result, total))); } }
public async Task <IActionResult> GetList([FromBody] DealsGetListRequest request) { var data = await _DealsManager.GetDeals(request); return(Result(data)); }