Beispiel #1
0
        public async Task <Models.DTO.Device> Create(
            string userId,
            string tenantId,
            RegisterDevice device,
            CancellationToken cancellationToken)
        {
            if (!ObjectId.TryParse(device.TypeId, out var deviceId))
            {
                throw new ArgumentException("Invalid TypeId");
            }

            var type = await _typeRepository.Get(
                deviceId,
                tenantId,
                cancellationToken)
                       ??
                       throw new ArgumentException("Type not found.");

            var newDevice = DeviceMapper.MapToDomain(
                device,
                type,
                userId,
                tenantId);

            await _deviceRepository.Create(
                newDevice,
                cancellationToken);

            return(DeviceMapper.MapToDto(newDevice));
        }
Beispiel #2
0
        public async Task <Models.DTO.Device> Delete(
            string id,
            string userId,
            CancellationToken cancellationToken)
        {
            if (!ObjectId.TryParse(id, out var deviceId))
            {
                throw new ArgumentException("Invalid Id, cannot cast to ObjectId.");
            }

            var device = await _deviceRepository.Delete(
                deviceId,
                userId,
                cancellationToken);

            return(DeviceMapper.MapToDto(device));
        }
Beispiel #3
0
        public async Task <Models.DTO.Device> Update(
            string id,
            string userId,
            string tenantId,
            UpdateDevice device,
            CancellationToken cancellationToken)
        {
            if (!ObjectId.TryParse(id, out var deviceId))
            {
                throw new ArgumentException("Invalid Id, cannot cast to ObjectId.");
            }

            var deviceToUpdate = DeviceMapper.MapToDomain(
                deviceId,
                userId,
                tenantId,
                device);

            var updatedDevice = await _deviceRepository.Update(
                deviceToUpdate,
                cancellationToken);

            return(DeviceMapper.MapToDto(updatedDevice));
        }