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)); }
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); }