Example #1
0
        public void Put(DigitalInputCollection collection)
        {
            if (collection == null)
            {
                throw new ArgumentNullException(nameof(RelayCollection), "DigitalInputCollection was nullable");
            }

            var request = new RestRequest(_requestUrl, Method.PUT)
            {
                Timeout = 2500
            };

            var jsonRelayCollection = JsonConvert.SerializeObject(collection);

            var jsonParts = this.ConstructJsonBodyParts(jsonRelayCollection);

            request.AddJsonBody(jsonParts);

            _mxioContext.MandatoryHeaders.Select(t => new { t.Key, t.Value }).ToList().ForEach(t => request.AddHeader(t.Key, t.Value));

            IRestResponse response = _mxioContext.Client.Execute(request);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception($"Put query was failder with {response.StatusCode}");
            }
        }
Example #2
0
        private async Task ObservableStateAsync(object state)
        {
            await Task.Run(async() =>
            {
                Ping ping       = new Ping();
                PingReply reply = await ping.SendPingAsync(IPAddress.Parse(_mxioContext.Client.BaseUrl.Host));

                if (reply.Status != IPStatus.Success)
                {
                    return;
                }

                DigitalInputCollection digitalInputs = default;

                try
                {
                    digitalInputs = await this.GetAsync();
                }
                finally { }


                if (_lastdigitalInputs == null)
                {
                    _lastdigitalInputs = digitalInputs;
                    return;
                }

                var differentDigitalInputs = digitalInputs.Where(t => _lastdigitalInputs.FirstOrDefault(k => k.Index == t.Index).Status != t.Status);

                if (differentDigitalInputs.Count() != 0)
                {
                    OnChanged?.Invoke(this, digitalInputs);
                }

                _lastdigitalInputs = digitalInputs;
            });
        }
Example #3
0
 private void SetDIsStatus(DigitalInputCollection e)
 {
     DIContacts = new ObservableCollection <DIModel>(e.Select(t => new DIModel {
         DigitalInput = t
     }));
 }