Exemple #1
0
 /// <summary>
 /// Called when the edit command is executed.
 /// </summary>
 /// <param name="task">The task.</param>
 private void OnEditCommandExecuted(Task task)
 {
     if (EditTaskCommand.CanExecute(task))
     {
         string uriString = "/Views/EditTaskView.xaml?TaskIndex=" + _tasks.IndexOf(task);
         NavigateTo(uriString);
     }
 }
Exemple #2
0
        private void NotifyCanExecuteCommands()
        {
            if (EditTaskCommand == null || DeleteTaskCommand == null)
            {
                return;
            }

            EditTaskCommand.NotifyCanExecuteChanged();
            DeleteTaskCommand.NotifyCanExecuteChanged();
        }
Exemple #3
0
        public void Execute_Returns_Edited_Task()
        {
            // Setup
            InitializeTestEntities();

            // Act
            Task result = new EditTaskCommand(_serviceFactory.Object).Execute(new EditTaskCommandParams());

            // Verify
            Assert.IsNotNull(result, "No task was created in the database");
            Assert.AreEqual(_unitOfWork.Tasks.Fetch().Single(), result, "The returned task did not match the one in the database");
        }
        public void Establish()
        {
            _taskToBeEdited = new Task("My Task", "My Task Description", DateTime.Now);
            _tasksDAO       = new Tasks.Adapters.DataAccess.TasksDAO();
            _tasksDAO.Clear();
            _taskToBeEdited = _tasksDAO.Add(_taskToBeEdited);

            _cmd = new EditTaskCommand(_taskToBeEdited.Id, NEW_TASK_NAME, NEW_TASK_DESCRIPTION, _NEW_TIME);

            s_commandProcessor = A.Fake <IAmACommandProcessor>();

            _handler = new EditTaskCommandHandler(_tasksDAO, s_commandProcessor);
        }
        public async Task CreateNewTaskSuccessfully()
        {
            var @event = new Event {
                Id = 1, IsLimitVolunteers = true, IsAllowWaitList = false
            };
            var organization = new Organization {
                Id = 2
            };

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Name                       = "TaskName",
                    Description                = "TaskDescription",
                    EventId                    = @event.Id,
                    OrganizationId             = organization.Id,
                    TimeZoneId                 = "Central Standard Time",
                    NumberOfVolunteersRequired = 5,
                    RequiredSkills             = new List <TaskSkill> {
                        new TaskSkill {
                            SkillId = 3, Skill = new Skill {
                                Id = 3, Name = "SkillName", Description = "SkillDescription"
                            }
                        }
                    }
                }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.SaveChanges();

            var sut    = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);

            var result = Context.Tasks.Single(x => x.Id == taskId);

            Assert.True(taskId > 0);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
        public async Task <ActionResult> EditTask([CustomizeValidator(Interceptor = typeof(API.Middleware.ValidatorInterceptor))] DelegatedTaskViewModel task)
        {
            var taskDetailsQuery = new TaskDetailsQuery(task.Id);
            var taskQuery        = await Mediator.Send(taskDetailsQuery);

            if (taskQuery == null)
            {
                return(BadRequest("Task not found"));
            }

            var editTaskCommand = new EditTaskCommand(taskQuery, task.Type, task.Deadline, task.Notes);
            await Mediator.Send(editTaskCommand);

            return(NoContent());
        }
        public async Task CreateNewTaskSuccessfully()
        {
            var @event = new Event { Id = 1, IsLimitVolunteers = true, IsAllowWaitList = false };
            var organization = new Organization { Id = 2 };

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Name = "TaskName",
                    Description = "TaskDescription",
                    EventId = @event.Id,
                    OrganizationId = organization.Id,
                    TimeZoneId = "Central Standard Time",
                    NumberOfVolunteersRequired = 5,
                    RequiredSkills = new List<TaskSkill> { new TaskSkill { SkillId = 3, Skill = new Skill { Id = 3, Name = "SkillName", Description = "SkillDescription" } } }
                }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.SaveChanges();

            var sut = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);
            var result = Context.Tasks.Single(x => x.Id == taskId);

            Assert.True(taskId > 0);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
        public async Task UpdateExistingTaskSuccessfully()
        {
            var @event = new Event {
                Id = 3
            };
            var organization = new Organization {
                Id = 4
            };
            var @task = new AllReadyTask
            {
                Id           = 2,
                Name         = "TaskName",
                Description  = "TaskDescription",
                Event        = @event,
                Organization = organization,
                NumberOfVolunteersRequired = 5,
                RequiredSkills             = new List <TaskSkill> {
                    new TaskSkill {
                        SkillId = 5, Skill = new Skill {
                            Id = 5, Name = "SkillName", Description = "SkillDescription"
                        }
                    }
                }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.Tasks.Add(@task);
            Context.SaveChanges();

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Id                         = @task.Id,
                    Name                       = "TaskNameUpdated",
                    Description                = "TaskDescriptionUpdated",
                    EventId                    = @event.Id,
                    OrganizationId             = organization.Id,
                    TimeZoneId                 = "Central Standard Time",
                    StartDateTime              = DateTimeOffset.Now.AddDays(1),
                    EndDateTime                = DateTimeOffset.Now.AddDays(2),
                    NumberOfVolunteersRequired = 6,
                    RequiredSkills             = new List <TaskSkill> {
                        new TaskSkill {
                            SkillId = 6, Skill = new Skill {
                                Id = 6, Name = "SkillNameOnMessage", Description = "SkillDescriptionOnMessage"
                            }
                        }
                    }
                }
            };

            var sut    = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);

            var result = Context.Tasks.Single(x => x.Id == taskId);

            //can't test start and end date as they're tied to static classes
            Assert.Equal(taskId, message.Task.Id);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
        public async Task UpdateExistingTaskSuccessfully()
        {
            var @event = new Event { Id = 3 };
            var organization = new Organization { Id = 4 };
            var @task = new AllReadyTask
            {
                Id = 2,
                Name = "TaskName",
                Description = "TaskDescription",
                Event = @event,
                Organization = organization,
                NumberOfVolunteersRequired = 5,
                RequiredSkills = new List<TaskSkill> { new TaskSkill { SkillId = 5, Skill = new Skill { Id = 5, Name = "SkillName", Description = "SkillDescription" } } }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.Tasks.Add(@task);
            Context.SaveChanges();

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Id = @task.Id,
                    Name = "TaskNameUpdated",
                    Description = "TaskDescriptionUpdated",
                    EventId = @event.Id,
                    OrganizationId = organization.Id,
                    TimeZoneId = "Central Standard Time",
                    StartDateTime = DateTimeOffset.Now.AddDays(1),
                    EndDateTime = DateTimeOffset.Now.AddDays(2),
                    NumberOfVolunteersRequired = 6,
                    RequiredSkills = new List<TaskSkill> { new TaskSkill { SkillId = 6, Skill = new Skill { Id = 6, Name = "SkillNameOnMessage", Description = "SkillDescriptionOnMessage" } } }
                }
            };

            var sut = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);
            var result = Context.Tasks.Single(x => x.Id == taskId);

            //can't test start and end date as they're tied to static classes
            Assert.Equal(taskId, message.Task.Id);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
Exemple #10
0
 public async Task <IActionResult> Update(EditTaskCommand command)
 {
     return(Ok(await _mediator.Send(command)));
 }
        public void Execute_Returns_Edited_Task()
        {
            // Setup
            InitializeTestEntities();

            // Act
            Task result = new EditTaskCommand(_serviceFactory.Object).Execute(new EditTaskCommandParams());

            // Verify
            Assert.IsNotNull(result, "No task was created in the database");
            Assert.AreEqual(_unitOfWork.Tasks.Fetch().Single(), result, "The returned task did not match the one in the database");
        }