public async Task <Unit> Handle(CreateInputDataCommand request, CancellationToken cancellationToken) { TerraristicWindow terraristicWindow = await _context.TerraristicWindows .Include(i => i.SensorBlocks) .FirstOrDefaultAsync(t => t.ApiKey.ToString() == request.WindowApiKey, cancellationToken: cancellationToken); SensorBlock sensorBlock = terraristicWindow?.SensorBlocks.FirstOrDefault(s => s.Id == request.SensorBlockId); if (sensorBlock == null) { throw new NotFoundException(nameof(sensorBlock), request.SensorBlockId); } var inputSensorData = new ReadSensorData { CreationDate = request.CreationDate == DateTime.MinValue ? DateTime.Now : request.CreationDate, SensorBlockId = request.SensorBlockId, Value = request.Value }; await _context.ReadSensorData.AddAsync(inputSensorData, cancellationToken); await _context.SaveChangesAsync(cancellationToken); return(Unit.Value); }
public async Task <int> Handle(CreateTerrariumCommand request, CancellationToken cancellationToken) { var entity = new TerraristicWindow { Name = request.Name, Description = request.Description, UserId = _currentUserService.UserId, ApiKey = Guid.NewGuid(), IsPublic = request.IsPublic }; await _context.TerraristicWindows.AddAsync(entity, cancellationToken); await _context.SaveChangesAsync(cancellationToken); return(entity.Id); }