private void Command_CloseTask(object sender, ExecutedRoutedEventArgs e)
        {
            TasksGroupControl selectedGroup = groups.FirstOrDefault(x => x.SelectedTask != null);

            if (selectedGroup != null && (selectedGroup.SelectedTask.State == TaskState.Open || selectedGroup.SelectedTask.State == TaskState.Postponed))
            {
                Task selectedTask = selectedGroup.SelectedTask;
                selectedTask.Close();

                selectedGroup.RemoveTask(selectedTask);
                groupClosed.AddTask(selectedTask);
                ActionsCollection.Instance.Remove(ActionsCollection.Instance.Actions.OfType <TaskDeadlineAction>().FirstOrDefault(x => x.Task == selectedTask));

                using (IRepository <Task, long> repository = PersistentFactory.GetContext().GetRepository <Task, long>())
                    repository.Update(selectedTask);

                StatsHelper.Update(StatsData.TaskClosed);
                StatsHelper.Update(StatsHelper.PriorityUpdate(selectedTask.Priority));
                NotificationHelper.Notify(NotificationType.TaskClosed, selectedTask.Name);
            }
        }