public async Task <Result> Handle(PublishReports request, CancellationToken cancellationToken) { _logger.LogInformation("Started Publishing Reports"); try { var reports = request.ReportDescriptors .SelectMany(d => BuildReports(d)); _logger.LogInformation($"Publishing total {reports.Count()} reports"); if (reports != null && reports.Count() > 0) { await _repository.CreateReportsAsync(reports); } return(Result.Success()); } catch (Exception e) { _logger.LogError(e, e.Message); return(Result.Fail(e)); } }