public int CountAll(IMongoFilter <Device, Alarm> filter)
        {
            DeviceAlarmFilter alarmFilter = new DeviceAlarmFilter
            {
                Context   = (filter as AlarmFilter).Context,
                AlarmType = (filter as AlarmFilter).AlarmType,
                Gravity   = (filter as AlarmFilter).Gravity,
                DeviceId  = string.Empty,
                IsRead    = (filter as AlarmFilter).IsRead,
                IsActive  = (filter as AlarmFilter).IsActive
            };

            return(alarmRepository.Count(alarmFilter));
        }
        public PaginatedItems <Alarm> GetByDevice(string deviceId, IMongoFilter <Device, Alarm> filter, int rowsPerPage, int pageNumber)
        {
            DeviceAlarmFilter alarmFilter = new DeviceAlarmFilter
            {
                Context   = (filter as AlarmFilter).Context,
                AlarmType = (filter as AlarmFilter).AlarmType,
                Gravity   = (filter as AlarmFilter).Gravity,
                DeviceId  = deviceId,
                IsRead    = (filter as AlarmFilter).IsRead,
                IsActive  = (filter as AlarmFilter).IsActive
            };

            var totalCount = alarmRepository.CountByDevice(deviceId, alarmFilter);
            var pageCount  = rowsPerPage == 0 ? 1 : (int)Math.Ceiling((double)totalCount / rowsPerPage);

            return(new PaginatedItems <Alarm>
            {
                PageCount = pageCount,
                TotalItemsCount = totalCount,
                Items = alarmRepository.GetByDevice(deviceId, alarmFilter, rowsPerPage, pageNumber)
            });
        }
 public static IMongoQueryable <TResult> Filter <TSource, TResult>(this IMongoQueryable <TSource> source, IMongoFilter <TSource, TResult> filter)
 {
     return(filter.FilterSource(source));
 }
 public PaginatedItems <Site> GetAllPaginated(IMongoFilter <Site> filter, int rowsPerPage, int pageNumber)
 {
     return(collection.AsQueryable()
            .Filter(filter)
            .Paginate(rowsPerPage, pageNumber));
 }
 public PaginatedItems <Site> Get(IMongoFilter <Site> filter, int rowsPerPage, int pageNumber)
 {
     return(siteRepository.GetAllPaginated(filter, rowsPerPage, pageNumber));
 }