Example #1
0
        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();
            }
        }
Example #2
0
        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);
        }