private void InitTasksForElement(DependencyObject element, Config.TaskType taskType = default)
        {
            int index = 0;

            foreach (var bttn in FindVisualChildren <Button>(element))
            {
                if (bttn == null)
                {
                    continue;
                }

                try {
                    bttn.Click += OnTaskButtonClicked;
                    //bttn.Content = (index + 1).ToString();
                    var task = taskType == Config.TaskType.Punishment ? Config.Tasks.Where(x => x.TaskType == Config.TaskType.Punishment).ElementAtOrDefault(index) : Config.Tasks.ElementAtOrDefault(index);

                    if (task == null)
                    {
                        bttn.IsEnabled  = false;
                        bttn.Background = Brushes.Gray;
                        continue;
                    }

                    task.Button          = bttn;
                    task.EventRegistered = true;
                    task.IsDisabled      = false;

                    switch (task.TaskType)
                    {
                    case Config.TaskType.Punishment:
                        bttn.Background = Brushes.Coral;
                        break;

                    case Config.TaskType.Girls:
                        bttn.Background = Brushes.Pink;
                        break;

                    case Config.TaskType.Boys:
                        bttn.Background = Brushes.DeepSkyBlue;
                        break;

                    case Config.TaskType.Common:
                        bttn.Background = Brushes.White;
                        break;
                    }
                }
                catch (Exception e) {
                    Console.WriteLine(e);
                    continue;
                }
                finally {
                    index++;
                }
            }
        }
        private void ResetTasks(Config.TaskType taskType)
        {
            foreach (var task in Config.Tasks)
            {
                if (task.TaskType != taskType)
                {
                    continue;
                }

                if (task.Button == null || task.Button.IsEnabled)
                {
                    continue;
                }

                Dispatcher.Invoke(() => task.Button.IsEnabled = true);
                task.IsDisabled = false;

                if (!task.EventRegistered)
                {
                    task.Button.Click   += OnTaskButtonClicked;
                    task.EventRegistered = true;
                }

                switch (task.TaskType)
                {
                case Config.TaskType.Punishment:
                    Dispatcher.Invoke(() => task.Button.Background = Brushes.Coral);
                    break;

                case Config.TaskType.Girls:
                    Dispatcher.Invoke(() => task.Button.Background = Brushes.Pink);
                    break;

                case Config.TaskType.Boys:
                    Dispatcher.Invoke(() => task.Button.Background = Brushes.DeepSkyBlue);
                    break;

                case Config.TaskType.Common:
                    Dispatcher.Invoke(() => task.Button.Background = Brushes.White);
                    break;
                }
            }

            Dispatcher.Invoke(() => RemainingTasksLabel.Content = $"{GetAvailableTasksCount()}/{GetTotalTasksCount()}");
        }