Ejemplo n.º 1
0
        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());
        }