Ejemplo n.º 1
0
        public List <LocationBasedStatistics> GetLocationStatistics(DateTime startTime, DateTime endTime, Guid regionId, Guid ownerId, Guid codecTypeId)
        {
            var callHistories = _callHistoryRepository.GetCallHistoriesByDate(startTime, endTime);

            if (callHistories == null)
            {
                return(new List <LocationBasedStatistics>());
            }

            var locations = new Dictionary <Guid, LocationBasedStatistics>();
            var filter    = new CallHistoryFilter(regionId, ownerId, codecTypeId);

            foreach (var callEvent in LocationCallEvent.GetOrderedEvents(callHistories, filter))
            {
                if (!locations.ContainsKey(callEvent.LocationId))
                {
                    locations.Add(callEvent.LocationId, new LocationBasedStatistics {
                        LocationId = callEvent.LocationId, LocationName = callEvent.LocationName
                    });
                }
                locations[callEvent.LocationId].AddEvent(callEvent, startTime, endTime);
            }

            var locationStatisticses = locations.Values.ToList();

            AddMissingLocations(locationStatisticses, regionId);

            return(locationStatisticses.OrderBy(l => l.LocationName).ToList());
        }
 public IList <CallHistory> GetCallHistoriesByDate(DateTime startTime, DateTime endTime)
 {
     return(_internalRepository.GetCallHistoriesByDate(startTime, endTime));
 }