public async Task <RidesAnalyticInfo> GetRidesEvolution() { DateTime fromFilter = DateTime.UtcNow.AddDays(-30); var labels = new List <int>(); var to = DateTime.UtcNow; var date = fromFilter; while (DateTime.Compare(date, to) < 0) { labels.Add(date.Day); date = date.AddDays(1); } int carrierId = await _securityContext.GetCarrierId(User.Identity); IEnumerable <RideResult> evolution = await _ridesRepository.GetRidesEvolutionAsync(carrierId, fromFilter); var values = new int[labels.Count]; foreach (var item in evolution) { int index = (int)(item.Date - fromFilter).TotalDays; values[index] = item.Value; } RideGroupInfo rides = new RideGroupInfo() { Days = labels, Values = values }; int ridesCount = await _ridesRepository.LastDaysRidesAsync(carrierId, fromFilter); int passengersCount = await _ridesRepository.LastDaysPassengersAsync(carrierId, fromFilter); return(new RidesAnalyticInfo() { LastDaysRides = ridesCount, LastDaysPassengers = passengersCount, RidesEvolution = rides }); }
public async Task<RidesAnalyticInfo> GetRidesEvolution() { DateTime fromFilter = DateTime.UtcNow.AddDays(-30); var labels = new List<int>(); var to = DateTime.UtcNow; var date = fromFilter; while (DateTime.Compare(date, to) < 0) { labels.Add(date.Day); date = date.AddDays(1); } int carrierId = DefaultCarrierID; IEnumerable<RideResult> evolution = await _ridesRepository.GetRidesEvolutionAsync(carrierId, fromFilter); var values = new int[labels.Count]; foreach (var item in evolution) { int index = (int)(item.Date - fromFilter).TotalDays; values[index] = item.Value; } RideGroupInfo rides = new RideGroupInfo() { Days = labels, Values = values }; int ridesCount = await _ridesRepository.LastDaysRidesAsync(carrierId, fromFilter); int passengersCount = await _ridesRepository.LastDaysPassengersAsync(carrierId, fromFilter); return new RidesAnalyticInfo() { LastDaysRides = ridesCount, LastDaysPassengers = passengersCount, RidesEvolution = rides }; }