示例#1
0
        public async Task <bool> Handle(RemoveTaskCommand request, CancellationToken cancellationToken)
        {
            var taskDomain    = _TaskRepository.GetById(request.Id).Result.ToDomain <Task>(_Mapper);
            var projectDomain = taskDomain.Project;

            projectDomain.Validate();

            projectDomain.RemoveTask(taskDomain);

            #region Persistence

            await _TaskRepository.Remove(taskDomain.ToModel <Command.Task>(_Mapper));

            await _UnitOfWork.Commit();

            #endregion

            #region Bus

            var removeTaskProject = new Message();
            removeTaskProject.MessageType = "AddUpdateTaskProject";
            removeTaskProject.SetData(new
            {
                Project = projectDomain.ToQueryModel <ProjectQuery.Project>(_Mapper),
                Task    = taskDomain.ToQueryModel <Query.Task>(_Mapper)
            });

            await _Bus.SendMessage(removeTaskProject);

            #endregion

            return(true);
        }
 public TasksViewModel()
 {
     RemoveTaskCommand = new RemoveTaskCommand(this);
     CreateTaskCommand = new CreateTaskCommand(this);
     ErrorMessage      = "";
     NewTaskName       = "";
     TasksList         = System.Threading.Tasks.Task.Run(() => this.GetTasks()).Result;
 }
        public ActionResult Delete(int id)
        {
            var userId  = User.Identity.GetUserId();
            var command = new RemoveTaskCommand
            {
                UserId = userId,
                TaskId = id,
            };

            PipelineService.HandleCommand(command);
            return(Json(true));
        }
示例#4
0
        public void TaskCommandHandler_Handle_RemoveTaskCommand_ValidTask()
        {
            IRequestHandler <RemoveTaskCommand, bool> handler = GetCommandHandlerInstance();
            var command = new RemoveTaskCommand()
            {
                Id = FacebookTaskId
            };

            var result = handler.Handle(command, default).Result;

            result.Should().BeTrue();
        }
示例#5
0
        public void TaskCommandHandler_Handle_RemoveTaskCommand_InvalidTask_ThrowException()
        {
            IRequestHandler <RemoveTaskCommand, bool> handler = GetCommandHandlerInstance();
            var command = new RemoveTaskCommand()
            {
                Id = Guid.NewGuid()
            };

            Action result = () => handler.Handle(command, default).Wait();

            result.Should().Throw <ElementNotFoundException>();
        }
示例#6
0
        /// <summary>
        /// Handles task remove.
        /// </summary>
        /// <param name="command">Command.</param>
        /// <param name="uowFactory">Application unit of work.</param>
        public void HandleRemoveTask(RemoveTaskCommand command, IAppUnitOfWorkFactory uowFactory)
        {
            using (var uow = uowFactory.Create())
            {
                var dbtask = uow.TaskRepository.Get(command.TaskId);
                if (dbtask.User.Id != command.UserId)
                {
                    throw new DomainException("You cannot remove task for another user.");
                }

                uow.TaskRepository.Remove(dbtask);
                uow.SaveChanges();
            }
        }
        public ProjectsPageViewModel()
        {
            NewProjectCommand  = new NewProjectCommand(this);
            AddTaskCommand     = new AddTaskCommand(this);
            RemoveTaskCommand  = new RemoveTaskCommand(this);
            SaveProjectCommand = new SaveProjectCommand(this);
            OpenProjectCommand = new OpenProjectCommand(this);

            EnumList = new List <Stage>();
            foreach (Stage stage in Enum.GetValues(typeof(Stage)))
            {
                EnumList.Add(stage);
            }
        }
示例#8
0
        public MainWindowViewModel(List <Task> tasks, UserGroup group)
        {
            GridWidth = false;

            // Set the current user
            CurrentUser = RunTimeContext.Context.CurrentUser;

            #region Lists

            // The list of scheduled tasks (bind to the Schedule list in UI)
            ScheduledList = new ObservableCollection <Schedule>(ScheduleManager.GetScheduledTask(RunTimeContext.Context.CurrentUser,
                                                                                                 RunTimeContext.Context.DatabaseContext));

            // Result list (bind to the result panel in UI)
            ResultList = new ObservableCollection <ResultTask>();

            // Property list, to use with FileLib, /!\ not implemented now :(
            Props = new ObservableCollection <Dictionary <string, string> >();

            // Task list, with all the task, given by the loading screen as constructor parameter
            TaskList = tasks == null ? new ObservableCollection <Task>() : new ObservableCollection <Task>(tasks);

            // The list of queued tasks (bind to the queue panel in UI)
            QueueList = new ObservableCollection <Task>();

            // The list of markets (Bind to the combobox with the list of markets in UI)
            MarketList = new ObservableCollection <Market>(MarketManager.GetAllMarkets(RunTimeContext.Context.DatabaseContext));

            #endregion

            #region Selected

            // Set the market to the main market of the user
            SelectedMarket = CurrentUser.MainMarket;

            // Set the selected task to the first one of the list
            SelectedTask = FilteredTasks.FirstOrDefault();

            #endregion

            #region User right

            // Those three properties are used to be bind with some UI elements like menu
            // If you bind the IsVisibility property of a control with one of those, only the group of person with the appropriate
            // rights will be able to see it
            // eg : Visibility="{Binding IsAdmin}" <-- only Admin level people will see

            // Do the user have Admin Access ?
            IsAdmin = (@group == UserGroup.Dev || @group == UserGroup.Admin) ? Visibility.Visible : Visibility.Collapsed;

            // Manager ?
            IsManager = @group == UserGroup.Manager ? Visibility.Visible : Visibility.Collapsed;

            // Or maybe a Developer ?
            IsDev = @group == UserGroup.Dev ? Visibility.Visible : Visibility.Collapsed;

            #endregion

            #region Commands

            OpenConfigCommand   = new OpenConfigCommand(this);
            OpenScheduleCommand = new OpenScheduleCommand(this);

            OpenFileCommand   = new OpenFileCommand(this);
            OpenFolderCommand = new OpenFolderCommand(this);

            OpenLogCommand = new OpenLogCommand(this);

            RunCommand      = new RunTaskCommand(this);
            QueueCommand    = new QueueTaskCommand(this);
            RemoveCommand   = new RemoveTaskCommand(this);
            CloseCommand    = new CloseWindowCommand();
            MinimizeCommand = new MinimizeWindowCommand();
            MaximizeCommand = new MaximizeWindowCommand();
            LogoutCommand   = new LogoutCommand();

            ClearQueueCommand    = new ClearQueueCommand(this);
            MoveDownQueueCommand = new MoveDownQueueCommand(this);
            MoveUpQueueCommand   = new MoveUpQueueCommand(this);

            StartQueueCommand     = new StartQueueCommand(this);
            AddScheduleCommand    = new AddScheduleCommand(this);
            RemoveScheduleCommand = new RemoveScheduleCommand(this);
            ChangeScheduleCommand = new ChangeScheduleCommand(this);
            ShowAllTaskCommand    = new ShowAllTaskCommand(this);
            ShowMarketTaskCommand = new ShowMarketTaskCommand(this);

            ShowInfoCommand  = new ShowInfoCommand(this);
            ShowQueueCommand = new ShowQueueCommand(this);

            FilterResultCommand = new FilterResultCommand(this);

            ReportDevCommand = new ReportDevCommand(this);

            #endregion

            // Number of time in a row a task failed
            // if 3 the error window will appear automatically
            FailedInARow = 0;

            #region Hide other regions

            GridWidth = true;
            //CollapseQueue();
            //CollapseGrid();

            #endregion

            // A simple bool to see if a task is running at the moment or not
            TaskRunning = false;

            // The result filter, chaging it will change automatically the task list
            ResultFilter = "";

            // The log List
            Log = new ObservableCollection <Log>();

            // The list of currently scheduled tasks, use for rerun if failed and keep track of current running status
            CurrentlyScheduledTasks = new Dictionary <int, ScheduledTaskInfo>();

            #region Timer

            // Create new DispatcherTimer and attach event handler to it
            var launchScheduleTimer = new DispatcherTimer();
            launchScheduleTimer.Tick    += LaunchScheduleTimer_Tick;
            launchScheduleTimer.Interval = new TimeSpan(0, 1, 0);
            launchScheduleTimer.Start();

            #endregion
        }