Пример #1
0
        /// <summary>
        /// Ctor
        /// </summary>
        public Manager()
        {
            Playlists = new ObservableCollection <Playlist>();

            Load();
            Commands = new ManagerCommands(this);
        }
Пример #2
0
        public ShardManager(Configuration cfg)
        {
            var ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;

            Log($"Birthday Bot v{ver.ToString(3)} is starting...");

            Config = cfg;

            // Command handler setup
            _dispatchCommands = new Dictionary <string, CommandHandler>(StringComparer.OrdinalIgnoreCase);
            _cmdsUser         = new UserCommands(cfg);
            foreach (var item in _cmdsUser.Commands)
            {
                _dispatchCommands.Add(item.Item1, item.Item2);
            }
            _cmdsListing = new ListingCommands(cfg);
            foreach (var item in _cmdsListing.Commands)
            {
                _dispatchCommands.Add(item.Item1, item.Item2);
            }
            _cmdsHelp = new HelpInfoCommands(cfg);
            foreach (var item in _cmdsHelp.Commands)
            {
                _dispatchCommands.Add(item.Item1, item.Item2);
            }
            _cmdsMods = new ManagerCommands(cfg, _cmdsUser.Commands);
            foreach (var item in _cmdsMods.Commands)
            {
                _dispatchCommands.Add(item.Item1, item.Item2);
            }

            _shards = new Dictionary <int, ShardInstance>();
            // TODO implement more flexible sharding configuration here
            for (int i = 0; i < Config.ShardCount; i++)
            {
                _shards.Add(i, null);
            }

            // Start watchdog
            _watchdogCancel = new CancellationTokenSource();
            _watchdogTask   = Task.Factory.StartNew(WatchdogLoop, _watchdogCancel.Token,
                                                    TaskCreationOptions.LongRunning, TaskScheduler.Default);
        }
Пример #3
0
        static void Main()
        {
            using (var context = new EmployeesDbContext())
            {
                var input = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries);

                while (true)
                {
                    var confMapper = new MapperConfiguration(conf => conf.AddProfile <EmployeeProfile>());
                    var mapper     = new Mapper(confMapper);

                    EmployeeCommands empCommands     = new EmployeeCommands(context, mapper);
                    ManagerCommands  managerCommands = new ManagerCommands(context, mapper);

                    var args = input.Skip(1).ToArray();
                    switch (input[0])
                    {
                    case "AddEmployee":
                        Console.WriteLine(empCommands.AddEmployee(args));
                        break;

                    case "SetBirthday":
                        empCommands.SetBirthday(args);
                        break;

                    case "SetAddress":
                        empCommands.SetAddress(args);
                        break;

                    case "EmployeeInfo":
                        var id = int.Parse(args[0]);
                        Console.WriteLine(empCommands.EmployeeInfo(id));
                        break;

                    case "EmployeePersonalInfo":
                        var Employeeid = int.Parse(args[0]);
                        Console.WriteLine(empCommands.EmployeePersonalInfo(Employeeid));
                        break;

                    case "SetManager":
                        Console.WriteLine(managerCommands.SetManager(args));
                        break;

                    case "ManagerInfo":
                        Console.WriteLine(managerCommands.ManagerInfo(args));
                        break;

                    case "ListEmployeesOlderThan":
                        Console.WriteLine(empCommands.ListEmployeesOlderThan(int.Parse(args[0])));
                        break;
                    }

                    if (input[0] == "Exit")
                    {
                        break;
                    }

                    input = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries);
                }
            }
        }