public void RegisterReaders(IEnumerable <BotReader> readers) { foreach (var reader in readers) { if (_readers.Where(a => a.Name == reader.Name).Any()) { _log($"Impossible d'ajouter le lecteur *{reader.Name}* car un lecteur est déjà enregistré avec ce nom"); continue; } _readers.Add(reader); _log($"Lecteur *{reader.Name}* ajouté"); } if (_currentReader == null && _readers.Any()) { _currentReader = _readers.First(); } }
private IEnumerable <BotAction> CreateReaderActions() { var listActions = new List <BotAction>(); var setReaderAction = new BotAction() { CommandLine = Constants.CMD_READER_SET, Description = Constants.DESC_READER_SET, Category = Constants.CAT_OTHER, Execute = (parameters, log, currentReader, user, time) => { if (parameters == null || !parameters.Any()) { return(Task.FromResult($"Vous devez fournir le nom du lecteur")); } var name = parameters[0]; var reader = _readers.Where(r => r.Name.ToLowerInvariant() == name.ToLowerInvariant()).FirstOrDefault(); if (reader == null) { return(Task.FromResult($"Le lecteur avec le nom *{name}* n'a pas pu être trouvé")); } if (_currentReader != null) { _currentReader.Stop(log); } _currentReader = reader; return(Task.FromResult($"Le lecteur courant est maintenant *{_currentReader.Name}*")); } }; listActions.Add(setReaderAction); var getReadersAction = new BotAction() { CommandLine = Constants.CMD_READER_GET_ALL, Description = Constants.DESC_READER_GET_ALL, Category = Constants.CAT_OTHER, Execute = (parameters, log, currentReader, user, time) => { if (!_readers.Any()) { return(Task.FromResult($"Il n'y a pas de lecteurs enregistrés")); } return(Task.FromResult(string.Join("\n", _readers.Select(r => r.Name).ToList()))); } }; listActions.Add(getReadersAction); var getReaderAction = new BotAction() { CommandLine = Constants.CMD_READER_GET, Description = Constants.DESC_READER_GET, Category = Constants.CAT_OTHER, Execute = (parameters, log, currentReader, user, time) => { if (_currentReader == null) { return(Task.FromResult($"Il n'y a pas de lecteur sélectionné")); } return(Task.FromResult($"Le lecteur courant est *{_currentReader.Name}*")); } }; listActions.Add(getReaderAction); return(listActions); }