public override async Task <RegisterResponse> RegisterSensor(SensorRegisterRequest request, ServerCallContext context) { var id = await _sensorService.RegisterSensorAsync(request); var response = new RegisterResponse(); if (id.HasValue) { response.Id = id.Value; response.Success = true; } else { response.Success = false; } return(response); }
public Task <int?> RegisterSensorAsync(SensorRegisterRequest request) { var host = _context.SensorHost.FirstOrDefault(x => x.Id == request.HostId); if (host == null) { return(null); } var sensor = _context.Sensor.FirstOrDefault(x => x.HostSensorId == request.HostSensorId); if (sensor != null) { return(Task.FromResult <int?>(sensor.Id)); } sensor = _mapper.Map <Sensor>(request); sensor.Host = host; _context.Sensor.Add(sensor); _context.SaveChanges(); return(Task.FromResult <int?>(sensor.Id)); }