public IActionResult GetAddDeviceFieldsData(int deviceId)
        {
            Device device = this.unitOfWork.DeviceRepository.GetDeviceById(deviceId);

            var fields = device.DeviceFields.Select(field =>
                                                    new DeviceFieldModel()
            {
                Id          = field.Id,
                FieldTypeId = field.Field.Id,
                Name        = field.Field.Name,
                Type        = field.Field.Type,
                Value       = field.Value
            });

            var response = new DeviceDetailsModel()
            {
                Id       = device.Id,
                Busy     = device.Status != DeviceStatus.Available,
                Name     = device.Name,
                Type     = device.DeviceType.Name,
                Location = device.Location.Name,
                Fields   = fields
            };

            return(Ok(response));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> DeviceDetails([FromRoute] string deviceId)
        {
            var arduino = await _deviceRepository.GetFirstOrDefaultAsync(
                predicate : x => x.Id == new Guid(deviceId),
                disableTracking : true,
                include : "ArduinoHumidities.Humidity");

            var details = new DeviceDetailsModel
            {
                Id          = arduino.Id.ToString(),
                Name        = arduino.Name,
                MacAddress  = arduino.MacAdrress,
                Observation = arduino.Observation
            };

            return(Response(details));
        }
        public async Task <IActionResult> StartConnection(int personId, int deviceId)
        {
            Person person = this.unitOfWork.PersonRepository.GetById(personId);
            Device device = this.unitOfWork.DeviceRepository.GetDeviceById(deviceId);

            //if (device.Status == DeviceStatus.Maintenance)
            //    return Ok(new LogViewModel()
            //    {
            //        Log = "Device is on maintenance"
            //    });

            Connection connectionEntity = new Connection
            {
                DeviceId     = deviceId,
                PersonId     = personId,
                StartDateUTC = DateTime.Now
            };

            await this.unitOfWork.ConnectionRepository.Add(connectionEntity);

            await this.unitOfWork.Commit();

            var fields = device.DeviceFields.Select(field =>
                                                    new DeviceFieldModel()
            {
                Id          = field.Id,
                FieldTypeId = field.Field.Id,
                Name        = field.Field.Name,
                Type        = field.Field.Type,
                Value       = field.Value
            });

            var result = new DeviceDetailsModel()
            {
                Id       = device.Id,
                Name     = device.Name,
                Type     = device.DeviceType.Name,
                Location = device.Location.Name,
                Fields   = fields
            };

            return(Ok(result));
        }
        public async Task <DeviceDetailsModel> GetDeviceDetailsAsync(string id)
        {
            var data = await _awsClientsService.IoTClient.DescribeThingAsync(new Amazon.IoT.Model.DescribeThingRequest()
            {
                ThingName = id
            });

            var result = new DeviceDetailsModel()
            {
                Name        = data.ThingName,
                Id          = data.ThingId,
                Version     = data.Version,
                TypeName    = data.ThingTypeName,
                CommandsUrl = _config["BaseSystem:ServerUrl"] + "/api/devices/" + id + "/commands"
            };

            foreach (var attr in data.Attributes)
            {
                result.Attributes.Add(attr.Key, attr.Value);
            }
            return(result);
        }