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);
            }
Пример #2
0
            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);
            }