コード例 #1
0
        public Task AddItemAsync(IItemConfiguration itemConfiguration)
        {
            if (_itemRepository.Any(x => x.Name == itemConfiguration.Name))
            {
                Log.Warn($"Item with name '{itemConfiguration.Name}' already exists");
                return(Task.CompletedTask);
            }

            var item = _itemBuilder.Build(itemConfiguration);

            return(_itemRepository.AddAsync(item));
        }
コード例 #2
0
        public Item Build(IItemConfiguration itemConfiguration)
        {
            var itemType = _itemTypes.FirstOrDefault(x =>
                                                     x.Name.Equals(itemConfiguration.ItemType, StringComparison.InvariantCulture));

            if (itemType == null)
            {
                Log.Warn($"Item type '{itemConfiguration.ItemType}' not found");

                return(null);
            }

            var binding = _itemBindingBuilder.Build(itemConfiguration.DataSource, itemConfiguration.Name, itemConfiguration.ChannelIds);

            var item = new Item(itemConfiguration.Name, itemType, binding, _messageHub);

            Log.Info($"Item '{item.Name}' created");

            return(item);
        }