New Angular based web version #1
@@ -51,34 +51,38 @@ public static class GetConsumptions
|
|||||||
ApplicationDbContext dbContext,
|
ApplicationDbContext dbContext,
|
||||||
CancellationToken cancellationToken)
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
List<Consumption> consumptions = await dbContext.Consumptions
|
Dictionary<CarId, List<Consumption>> consumptionsByCar = await dbContext.Consumptions
|
||||||
.OrderByDescending(x => x.DateTime)
|
.OrderByDescending(x => x.DateTime)
|
||||||
.Include(x => x.Car)
|
.Include(x => x.Car)
|
||||||
.ToListAsync(cancellationToken);
|
.GroupBy(x => x.CarId)
|
||||||
|
.ToDictionaryAsync(x => x.Key, x => x.ToList(), cancellationToken);
|
||||||
|
|
||||||
List<ResponseDto> responses = [];
|
List<ResponseDto> responses = [];
|
||||||
|
|
||||||
for (int i = 0; i < consumptions.Count; i++)
|
foreach (var consumptions in consumptionsByCar.Select(x => x.Value))
|
||||||
{
|
{
|
||||||
Consumption consumption = consumptions[i];
|
for (int i = 0; i < consumptions.Count; i++)
|
||||||
|
|
||||||
double? literPer100Km = null;
|
|
||||||
|
|
||||||
bool isLast = i == consumptions.Count - 1;
|
|
||||||
if (!isLast)
|
|
||||||
{
|
{
|
||||||
Consumption previousConsumption = consumptions[i + 1];
|
Consumption consumption = consumptions[i];
|
||||||
double distanceDiff = consumption.Distance - previousConsumption.Distance;
|
|
||||||
literPer100Km = consumption.Amount / (distanceDiff / 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
responses.Add(new ResponseDto(
|
double? literPer100Km = null;
|
||||||
consumption.Id.Value,
|
|
||||||
consumption.DateTime,
|
bool isLast = i == consumptions.Count - 1;
|
||||||
consumption.Distance,
|
if (!isLast)
|
||||||
consumption.Amount,
|
{
|
||||||
CarDto.FromCar(consumption.Car),
|
Consumption previousConsumption = consumptions[i + 1];
|
||||||
literPer100Km));
|
double distanceDiff = consumption.Distance - previousConsumption.Distance;
|
||||||
|
literPer100Km = consumption.Amount / (distanceDiff / 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
responses.Add(new ResponseDto(
|
||||||
|
consumption.Id.Value,
|
||||||
|
consumption.DateTime,
|
||||||
|
consumption.Distance,
|
||||||
|
consumption.Amount,
|
||||||
|
CarDto.FromCar(consumption.Car),
|
||||||
|
literPer100Km));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiResponse apiResponse = new() { Consumptions = responses };
|
ApiResponse apiResponse = new() { Consumptions = responses };
|
||||||
|
|||||||
Reference in New Issue
Block a user