public int CountByDevice(string deviceId, DeviceAlarmFilter filter) { IEnumerable <BsonDocument> pipeline = filter.CountAlarmsPipeline(); PipelineDefinition <Site, BsonDocument> pipelineDefinition = PipelineDefinition <Site, BsonDocument> .Create(pipeline); return(Iterate <int>(pipelineDefinition, (e, count) => JsonConvert.DeserializeObject <BsonAlarmRoot>(e).Count)); }
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 IEnumerable <Alarm> GetByDevice(string deviceId, DeviceAlarmFilter filter, int rowsPerPage, int pageNumber) { IEnumerable <BsonDocument> pipeline = filter.SkipedAlarmsPipeline(rowsPerPage, pageNumber); PipelineDefinition <Site, BsonDocument> pipelineDefinition = PipelineDefinition <Site, BsonDocument> .Create(pipeline); return(Iterate <IList <Alarm> >(pipelineDefinition, (e, alarms) => { if (alarms == null) { alarms = new List <Alarm>(); } alarms.Add(JsonConvert.DeserializeObject <BsonAlarmRoot>(e).Alarms); return alarms; })); }
public IEnumerable <Alarm> Get(DeviceAlarmFilter filter, int rowsPerPage, int pageNumber) { filter.DeviceId = string.Empty; IEnumerable <BsonDocument> pipeline = filter.SkipedAlarmsPipeline(rowsPerPage, pageNumber); PipelineDefinition <Site, BsonDocument> pipelineDefinition = PipelineDefinition <Site, BsonDocument> .Create(pipeline); return(BsonIterator.Iterate(collection, pipelineDefinition, (BsonDocument e, IList <Alarm> alarms) => { if (alarms == null) { alarms = new List <Alarm>(); } alarms.Add(BsonSerializer.Deserialize <BsonAlarmRoot>(e).Alarms); return alarms; })); }
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) }); }