Example #1
0
        public async Task <GatewayResponse> RemoveDevice(GatewayDeviceDto data)
        {
            var gateway = await _gatewayRepository.FindByIdAsync(data.GatewayId);

            if (gateway == null)
            {
                return(new GatewayResponse("Gateway not found"));
            }
            var device = await _deviceService.FindAsync(data.DeviceId);

            if (device == null)
            {
                return(new GatewayResponse("Device not found"));
            }

            try
            {
                device.Gateway = null;
                await _unitOfWork.CompleteAsync();

                return(new GatewayResponse(gateway));
            }
            catch (Exception e)
            {
                return(new GatewayResponse($"Error removing device: {e.Message}"));
            }
        }
Example #2
0
        public async Task <ActionResult> RemoveDevice([FromBody] GatewayDeviceDto data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }
            var result = await _gatewayService.RemoveDevice(data);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var modified = _mapper.Map <Gateway, GatewayDto>(result.Gateway);

            return(Ok(modified));
        }
Example #3
0
        public async Task <GatewayResponse> AddDevice(GatewayDeviceDto data)
        {
            var gateway = await _gatewayRepository.FindByIdAsync(data.GatewayId);

            if (gateway == null)
            {
                return(new GatewayResponse("Gateway not found"));
            }
            if (!(gateway.Devices.Count < 10))
            {
                return(new GatewayResponse("This gateway already has 10 devices connected"));
            }

            var device = await _deviceService.FindAsync(data.DeviceId);

            if (device == null)
            {
                return(new GatewayResponse("Device not found"));
            }
            if (device.Gateway != null && device.GatewayId != data.GatewayId)
            {
                return(new GatewayResponse("This device is already connected to a gateway"));
            }

            try
            {
                device.Gateway = gateway;
                await _unitOfWork.CompleteAsync();

                return(new GatewayResponse(gateway));
            }
            catch (Exception e)
            {
                return(new GatewayResponse($"Error adding device to gateway: {e.Message}"));
            }
        }