public static string SerializerOverallReport(Models.ReportSubject subject, DateTime?from, DateTime?to, ReportGranularity granularity, OverallReportPortion[] portions) { var sb = new StringBuilder(); sb.AppendLine($"Raport całościowy dla; {subject}"); sb.AppendLine($"Zakres od; {from?.ToString() ?? "-"}"); sb.AppendLine($"Zakres do; {to?.ToString() ?? "-"}"); sb.AppendLine($"Granularność; {granularity}"); var groupedPortions = portions.GroupBy(p => p.Period); var ordered = groupedPortions.OrderBy(p => p.Key); foreach (var portion in ordered) { sb.AppendLine(portion.Key); foreach (var aggregation in portion) { sb.WriteAggragation(portion.Key, aggregation.Value, aggregation.Aggregation); } } return(sb.ToString()); }
public async Task <OverallReportPortion[]> GetOverallReportPortions(AggregateOverallRequest request, Metadata headers, Models.ReportSubject subject) { AggregateOverallResponse response; switch (subject) { case Models.ReportSubject.Cards: response = await cardsClient.AggregateOverallAsync(request, headers); break; case Models.ReportSubject.Loans: response = await loansClient.AggregateOverallAsync(request, headers); break; case Models.ReportSubject.Payments: response = await paymentsClient.AggregateOverallAsync(request, headers); break; case Models.ReportSubject.Transactions: response = await transactionsClient.AggregateOverallAsync(request, headers); break; default: throw new InvalidOperationException("Unknown subject of report."); } return(response.Portions.ToArray()); }