Exemplo n.º 1
0
        internal Tuple <List <SensorHistoryData>, int> GetSensorHistoryInternal(SensorHistoryParameters parameters)
        {
            var raw = ObjectEngine.GetObjectsRaw <SensorHistoryData>(parameters, ResponseParser.ValidateSensorHistoryResponse);

            var data = ResponseParser.ParseSensorHistoryResponse(raw.Items, parameters.SensorId);

            return(Tuple.Create(data, raw.TotalCount));
        }
Exemplo n.º 2
0
        internal Tuple <List <SensorHistoryData>, int> GetSensorHistoryInternal(SensorHistoryParameters parameters)
        {
            var raw = ObjectEngine.GetObjectsRaw <SensorHistoryData>(parameters, responseParser: m => ResponseParser.GetSensorHistoryResponse(m, LogLevel, RequestEngine.IsDirty));

            var data = ResponseParser.ParseSensorHistoryResponse(raw.Items, parameters.SensorId);

            return(Tuple.Create(data, raw.TotalCount));
        }
Exemplo n.º 3
0
        public void SensorHistoryParameters_GetsProperties()
        {
            var start      = DateTime.Now;
            var parameters = new SensorHistoryParameters(1001, 600, null, null, null);

            Assert.AreEqual(parameters.StartDate.ToString(), start.ToString());
            Assert.AreEqual(parameters.EndDate.ToString(), start.AddHours(-1).ToString());
            Assert.AreEqual(parameters.Average, 600);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Performs enhanced record-by-record processing functionality for the cmdlet.
        /// </summary>
        protected override void ProcessRecordEx()
        {
            if (ParameterSetName == ParameterSet.Default)
            {
                Id = Sensor.Id;
            }

            IEnumerable <PSObject> records;

            var average = Average;

            if (average == null)
            {
                //Sensor is implicitly not null because Downtime is part of the Default parameter set
                average = Downtime ? Convert.ToInt32(Sensor.Interval.TotalSeconds) : 0;
            }
            else
            {
                if (Downtime && average == 0)
                {
                    throw new InvalidOperationException($"Cannot retrieve downtime with an {nameof(Average)} of 0");
                }
            }

            var parameters = new SensorHistoryParameters(Id, average.Value, StartDate, EndDate, Count);

            if (EndDate == null)
            {
                StreamProvider.StreamResults = false;
            }

            if (EndDate != null)
            {
                StreamProvider.ForceStream = true;
                records = StreamProvider.StreamResultsWithProgress(parameters, Count, () => GetFormattedRecords(parameters));

                if (Count != null)
                {
                    records = records.Take(Count.Value);
                }
            }
            else if (ProgressManager.GetRecordsWithVariableProgress)
            {
                records = GetResultsWithVariableProgress(() => GetFormattedRecords(parameters));
            }
            else if (ProgressManager.GetResultsWithProgress)
            {
                records = GetResultsWithProgress(() => GetFormattedRecords(parameters));
            }
            else
            {
                records = GetFormattedRecords(parameters);
            }

            WriteList(records);
        }
Exemplo n.º 5
0
        internal int GetSensorHistoryTotals(SensorHistoryParameters parameters)
        {
            parameters.Count = 0;

            var data = ObjectEngine.GetObjectsRaw <SensorHistoryData>(parameters, responseParser: m => ResponseParser.GetSensorHistoryResponse(m, LogLevel, RequestEngine.IsDirty));

            parameters.GetParameters().Remove(Parameter.Count);

            return(Convert.ToInt32(data.TotalCount));
        }
Exemplo n.º 6
0
 private IEnumerable <SensorHistoryData> StreamSensorHistoryInternal(SensorHistoryParameters parameters, bool serial)
 {
     return(ObjectEngine.StreamObjects(
                parameters,
                serial,
                () => GetSensorHistoryTotals(parameters),
                p => GetSensorHistoryInternalAsync(p, CancellationToken.None),
                GetSensorHistoryInternal
                ));
 }
Exemplo n.º 7
0
        internal int GetSensorHistoryTotals(SensorHistoryParameters parameters)
        {
            parameters.Count = 0;

            var data = ObjectEngine.GetObjectsRaw <SensorHistoryData>(parameters, ResponseParser.ValidateSensorHistoryResponse);

            parameters.GetParameters().Remove(Parameter.Count);

            return(Convert.ToInt32(data.TotalCount));
        }
Exemplo n.º 8
0
        private IEnumerable <PSObject> GetFormattedRecords(SensorHistoryParameters parameters)
        {
            IEnumerable <SensorHistoryRecord> records;

            if (EndDate == null)
            {
                records = client.GetSensorHistoryInternal(parameters).Item1;
            }
            else
            {
                records = StreamProvider.StreamRecords <SensorHistoryRecord>(parameters, null);
            }

            var formatter = new SensorHistoryFormatter(this);

            return(formatter.Format(records, EndDate != null, Count));
        }
Exemplo n.º 9
0
        private void AdjustCountPeriod(SensorHistoryParameters parameters, int average)
        {
            //A count was specified without specifying an EndDate. We want to ensure the Start/End date range that
            //is specified is capable of meeting the specified amount.
            var sensor = Sensor;

            if (ParameterSetName == ParameterSet.Manual && average == 0)
            {
                sensor = client.GetSensor(Id);
            }

            //If we're using the default average, get the total TimeSpan (in seconds) we need records for
            var requiredSeconds = (average == 0 ? sensor.Interval.TotalSeconds : average) * Count.Value;

            //An additional hour for good measure. Sometimes we can't scan according to our specified interval
            var requiredTimeSpan = TimeSpan.FromSeconds(requiredSeconds + 3600);

            var requiredEnd = parameters.StartDate - requiredTimeSpan;

            parameters.StartDate = parameters.StartDate;
            parameters.EndDate   = requiredEnd;
        }
Exemplo n.º 10
0
        internal async Task <List <SensorHistoryData> > GetSensorHistoryInternalAsync(SensorHistoryParameters parameters, CancellationToken token)
        {
            var items = await ObjectEngine.GetObjectsAsync <SensorHistoryData>(parameters, responseParser : m => ResponseParser.GetSensorHistoryResponseAsync(m, LogLevel, RequestEngine.IsDirty), token : token).ConfigureAwait(false);

            return(ResponseParser.ParseSensorHistoryResponse(items, parameters.SensorId));
        }
Exemplo n.º 11
0
 int IStreamableCmdlet <GetSensorHistory, SensorHistoryRecord, SensorHistoryParameters> .GetStreamTotalObjects(SensorHistoryParameters parameters) =>
 client.GetSensorHistoryTotals(parameters);
Exemplo n.º 12
0
 async Task <List <SensorHistoryRecord> > IStreamableCmdlet <GetSensorHistory, SensorHistoryRecord, SensorHistoryParameters> .GetStreamObjectsAsync(SensorHistoryParameters parameters) =>
 await client.GetSensorHistoryInternalAsync(parameters, CancellationToken.None).ConfigureAwait(false);
Exemplo n.º 13
0
 Tuple <List <SensorHistoryRecord>, int> IStreamableCmdlet <GetSensorHistory, SensorHistoryRecord, SensorHistoryParameters> .GetStreamObjects(SensorHistoryParameters parameters) =>
 client.GetSensorHistoryInternal(parameters);
Exemplo n.º 14
0
 async Task <List <SensorHistoryData> > IStreamableCmdlet <GetSensorHistory, SensorHistoryData, SensorHistoryParameters> .GetStreamObjectsAsync(SensorHistoryParameters parameters) =>
 await client.GetSensorHistoryAsyncInternal(parameters).ConfigureAwait(false);
Exemplo n.º 15
0
 List <SensorHistoryData> IStreamableCmdlet <GetSensorHistory, SensorHistoryData, SensorHistoryParameters> .GetStreamObjects(SensorHistoryParameters parameters) =>
 client.GetSensorHistoryInternal(parameters);
Exemplo n.º 16
0
        internal async Task <List <SensorHistoryData> > GetSensorHistoryInternalAsync(SensorHistoryParameters parameters, CancellationToken token)
        {
            var items = await ObjectEngine.GetObjectsAsync <SensorHistoryData>(parameters, ResponseParser.ValidateSensorHistoryResponse, token : token).ConfigureAwait(false);

            return(ResponseParser.ParseSensorHistoryResponse(items, parameters.SensorId));
        }