protected async Task ValidateDataFilterInRange(string deviceId, DataStream stream, IDataStreamConnector connector)
        {
            var startDate = DateTime.UtcNow.AddDays(-1).ToJSONString();
            var endDate   = DateTime.UtcNow.AddDays(1).ToJSONString();

            var getResult = await connector.GetItemsAsync(deviceId, new Core.Models.UIMetaData.ListRequest()
            {
                PageIndex = 0,
                PageSize  = 30,
                StartDate = startDate,
                EndDate   = endDate,
            });

            Assert.IsTrue(getResult.Successful, getResult.Successful ? "Success" : $"Could not get result {getResult.Errors.First().Message}");

            Console.WriteLine($"All Date Values should be larger than {startDate} and smaller than {endDate}");

            WriteResult(getResult);

            Assert.IsTrue(getResult.Successful);
            Assert.AreEqual(getResult.PageSize, getResult.Model.Count(), "Page size should match model count");
            Assert.IsFalse(getResult.HasMoreRecords);
            Assert.AreEqual(10, getResult.PageSize);
            Assert.IsFalse(getResult.Model.Where(rec =>
                                                 String.Compare(rec.Timestamp, startDate) < 0 &&
                                                 String.Compare(rec.Timestamp, endDate) > 0).Any());
        }
예제 #2
0
        public async Task <ListResponse <DataStreamResult> > GetStreamDataAsync(DataStream stream, IDataStreamConnector connector, string deviceId, EntityHeader org, EntityHeader user, ListRequest request)
        {
            await AuthorizeAsync(stream, AuthorizeResult.AuthorizeActions.Read, user, org, "ReadDeviceData");

            await connector.InitAsync(stream);

            return(await connector.GetItemsAsync(deviceId, request));
        }
        protected async Task ValidatePaginatedRecordSet(string deviceId, IDataStreamConnector connector)
        {
            var getResult = await connector.GetItemsAsync(deviceId, new Core.Models.UIMetaData.ListRequest()
            {
                PageIndex = 0,
                PageSize  = 15
            });

            Assert.IsTrue(getResult.Successful);

            Assert.AreEqual("99", getResult.Model.ToArray()[0].Where(fld => fld.Key == "pointIndex").First().Value.ToString());
            Assert.IsTrue(getResult.HasMoreRecords, "Should Have Records");
            WriteResult(getResult);

            getResult = await connector.GetItemsAsync(deviceId, new Core.Models.UIMetaData.ListRequest()
            {
                PageIndex = 2, PageSize = 15
            });

            Assert.AreEqual("84", getResult.Model.ToArray()[0].Where(fld => fld.Key == "pointIndex").First().Value.ToString());
            Assert.IsTrue(getResult.Successful);
            Assert.IsTrue(getResult.HasMoreRecords);
            WriteResult(getResult);

            getResult = await connector.GetItemsAsync(deviceId, new Core.Models.UIMetaData.ListRequest()
            {
                PageIndex = 7, PageSize = 15
            });

            Assert.AreEqual("9", getResult.Model.ToArray()[0].Where(fld => fld.Key == "pointIndex").First().Value.ToString());
            Assert.AreEqual(10, getResult.PageSize);
            Assert.IsTrue(getResult.Successful);
            Assert.IsFalse(getResult.HasMoreRecords);
            WriteResult(getResult);

            getResult = await connector.GetItemsAsync(deviceId, new Core.Models.UIMetaData.ListRequest()
            {
                PageIndex = 8, PageSize = 15
            });

            Assert.AreEqual(0, getResult.PageSize);
            Assert.IsTrue(getResult.Successful);
            Assert.IsFalse(getResult.HasMoreRecords);
            WriteResult(getResult);
        }