Exemplo n.º 1
0
        public void PingDevice_Fail_NoPingDeviceDomain()
        {
            int tenantId = 1;
            PingDeviceDomain pingDeviceDomain = null;

            _pingDeviceManipulation.PingDevice(tenantId, pingDeviceDomain);
        }
Exemplo n.º 2
0
        public void PingDevice_Fail_InvalidActionId()
        {
            int tenantId         = 1;
            var pingDeviceDomain = new PingDeviceDomain()
            {
                DeviceId = 1,
                ActionId = -1,
                Content  = "Lorem ipsum"
            };

            _pingDeviceManipulation.PingDevice(tenantId, pingDeviceDomain);
        }
Exemplo n.º 3
0
        public void PingDevice(int tenantId, PingDeviceDomain pingDeviceDomain)
        {
            if (tenantId < 0)
            {
                throw new ArgumentNullException("Tennat Id must be set and valid");
            }

            if (pingDeviceDomain is null)
            {
                throw new ArgumentNullException("PingDeviceDomain cannot be null");
            }

            if (pingDeviceDomain.DeviceId <= 0)
            {
                throw new ArgumentNullException("Device Id must be valid");
            }

            if (pingDeviceDomain.ActionId <= 0)
            {
                throw new ArgumentNullException("Action Id must be valid");
            }

            if (string.Equals(pingDeviceDomain.Content, string.Empty))
            {
                throw new ArgumentException("Cannot send empty content to device");
            }

            // Get device and check if it is active
            DeviceDomain device = this._deviceRepository.GetDeviceById(pingDeviceDomain.DeviceId);

            if (!device.IsActive)
            {
                throw new ArgumentException("Device is no longer active");
            }

            _publishEndpoint.Publish <IPingDeviceReceived>(new
            {
                PingDeviceId = Guid.NewGuid(),
                TenantId     = tenantId,
                DeviceId     = pingDeviceDomain.DeviceId,
                ActionId     = pingDeviceDomain.ActionId,
                Content      = pingDeviceDomain.Content,
                Timestamp    = DateTime.Now
            });
        }