protected async Task <TU> ExecuteAsync <T, TU>(ISheaftMediatr mediator, T input, CancellationToken token, [CallerMemberName] string memberName = null) where T : ICommand <TU> { SetLogTransaction(input, typeof(T).Name); input.SetRequestUser(CurrentUser); var result = await mediator.Process(input, token); if (result.Succeeded) { return(result.Data); } throw new SheaftException(result); }
public async Task <Job> ImportProducts(IFile file, [Service] ISheaftMediatr mediatr, JobsByIdBatchDataLoader jobsDataLoader, CancellationToken token) { using (var stream = file.OpenReadStream()) { using (var content = new MemoryStream()) { await stream.CopyToAsync(content, token); var input = new QueueImportProductsCommand(CurrentUser) { ProducerId = CurrentUser.Id, FileName = file.Name, FileStream = content.ToArray() }; var result = await mediatr.Process(input, token); return(await jobsDataLoader.LoadAsync(result.Data, token)); } } }