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)); }
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); }