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)); }
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(); }
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>(); }
/// <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); } }
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 }