public DeviceResponse(DevicePrincipalResponse principal, IEnumerable <TriggerResponse> triggers, IEnumerable <ProgramResponse> programs) { Principal = principal; Triggers = triggers; Programs = programs; }
public async Task <ActionResult <DeviceResponse> > Get(Guid deviceId) { var user = HttpContext.User.Identity?.Name; if (user == null) { return(Unauthorized("Unknown user")); } var d = await Db.Users .Where(x => x.Aud == user) .Include(x => x.Device) .ThenInclude(x => x.Programs) .Include(x => x.Device) .ThenInclude(x => x.Triggers) .FirstOrDefaultAsync(x => x.Device.DeviceId == deviceId); if (d == null) { return(NotFound("Cannot find device")); } var device = new DevicePrincipalResponse( d.Device.DeviceId, d.Name, d.Description, d.Device.PowerState ); var triggers = d.Device.Triggers.Select(x => new TriggerResponse(x.Id, x.Name)); var programs = d.Device.Programs.Select(x => new ProgramResponse(x.Id, x.Name, x.Code)); var resp = new DeviceResponse(device, triggers, programs); return(Ok(resp)); }