コード例 #1
0
 private void Validate(ScrumTask task)
 {
     if (task.Title == null || task.Title.Trim().Length == 0)
     {
         _validationDictionary.AddError("Content", "Title is required.");
     }
     if (task.Title != null && task.Title.Trim().Length < 3)
     {
         _validationDictionary.AddError("Content", "Title must contain at least 3 characters.");
     }
     if (task.Title != null && task.Title.Trim().Length > 40)
     {
         _validationDictionary.AddError("Content", "Title must contain less than 40 characters.");
     }
     if (task.Content == null || task.Content.Trim().Length == 0)
     {
         _validationDictionary.AddError("Content", "Content is required.");
     }
     if (task.Content != null && task.Content.Trim().Length < 3)
     {
         _validationDictionary.AddError("Content", "Content must contain at least 3 characters.");
     }
     if (task.Content != null && task.Content.Trim().Length > 2000)
     {
         _validationDictionary.AddError("Content", "Content must contain less than 2000 characters.");
     }
     if (_unitOfWork.Sprints.Get(task.SprintId) == null)
     {
         _validationDictionary.AddError("SprintId", "Sprint with this id does not exist.");
     }
 }
コード例 #2
0
ファイル: TasksController.cs プロジェクト: vad255/SoftServe3
        public IActionResult Patch([FromODataUri] int key, [FromBody] Delta <ScrumTask> patch)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ScrumTask task = _tasks.GetById(key);

            if (task == null)
            {
                return(NotFound());
            }

            patch.Patch(task);

            try
            {
                _tasks.Save();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TaskExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(task));
        }
コード例 #3
0
        private void UpdateTaskType(ScrumTask task, TaskType taskType, int?tookId = null)
        {
            if (task.TaskType == TaskType.Done)
            {
                return;
            }

            if (tookId != null)
            {
                var took = _unitOfWork.Estimations.Get(tookId.Value);
                if (took == null)
                {
                    return;
                }
                task.Took   = took;
                task.DoneAt = DateTime.Today;
            }
            else
            {
                task.TookId = null;
                task.DoneAt = null;
            }

            task.TaskType = taskType;

            CheckIfTaskTypeChangeIsPermitted(task);
        }
コード例 #4
0
        private void Kanban_CardTapped(object sender, KanbanTappedEventArgs e)
        {
            SQLiteConnection Connection = new SQLiteConnection("Data Source=" + Environment.CurrentDirectory + Properties.Settings.Default.DBPath);

            Connection.Open();
            DataContext db = new DataContext(Connection);

            // Get a typed table to run queries.
            Table <SprintTask> SprintTsks = db.GetTable <SprintTask>();
            Table <ScrumTask>  ScrumTsks  = db.GetTable <ScrumTask>();

            int SprintTaskID;

            Int32.TryParse((e.SelectedCard.Content as KanbanModel).ID, out SprintTaskID);

            ScrumTask tsk = (from sp in SprintTsks
                             join sc in ScrumTsks on sp.ScrumTaskID equals sc.ID
                             where sp.ID == SprintTaskID
                             select sc).SingleOrDefault();

            TaskExternalID.Text          = tsk.ExternalID.ToString();
            TaskExternalID.Tag           = e.SelectedCard;
            TaskTitle.Text               = tsk.Title;
            TaskDescription.Text         = tsk.Description;
            TaskTeamMember.SelectedIndex = -1;
            // e.SelectedCard.;
        }
コード例 #5
0
        public void PostTasks_ReturnsCreatedODataResult()
        {
            // Arrange
            var       mockRepository = new Mock <IRepository <ScrumTask> >();
            var       controller     = new TasksController(mockRepository.Object);
            ScrumTask task           = new ScrumTask
            {
                ActualHours    = 0,
                Blocked        = false,
                Completed      = null,
                Description    = "Set-up SVN, project folders, SharePoint, project page",
                PlannedHours   = 72,
                RemainingHours = 72,
                Started        = null,
                State          = TaskState.ToDo,
                Story          = null,
                StoryId        = 1,
                Summary        = "SVN, Project Page",
                TaskId         = 111,
                Type           = TaskType.Analyses,
                User           = null,
                UserId         = 1
            };

            // Act
            var actionResult = controller.Post(task);

            //Assert.IsNotNull(actionResult);
            //CreatedODataResult<ScrumTask> result = actionResult as CreatedODataResult<ScrumTask>;

            // Assert
            Assert.IsNotNull(actionResult);
            Assert.IsInstanceOfType(actionResult, typeof(CreatedODataResult <ScrumTask>));
        }
コード例 #6
0
        private void CheckIfTaskTypeChangeIsPermitted(ScrumTask task)
        {
            var sprint = _unitOfWork.Sprints.Get(task.SprintId);

            if (sprint != null && (sprint.StartsAt > DateTime.Now || sprint.EndsAt < DateTime.Now))
            {
                _validationDictionary.AddError("SprintId", "This sprint is inactive.");
            }
        }
コード例 #7
0
        private void UpdateEstimation(ScrumTask task, int estimationId)
        {
            if (task.TaskType == TaskType.Done)
            {
                return;
            }

            var estimation = _unitOfWork.Estimations.Get(estimationId);

            task.EstimationId = estimation?.Id;
        }
コード例 #8
0
        private void UpdateUser(ScrumTask task, string userId)
        {
            if (task.TaskType == TaskType.Done)
            {
                return;
            }

            var user = _unitOfWork.Users.Get(userId);

            task.UserId = user?.Id;
        }
コード例 #9
0
ファイル: TasksController.cs プロジェクト: vad255/SoftServe3
        public IActionResult Post([FromBody]  ScrumTask task)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _tasks.Create(task);
            _tasks.Save();

            return(Created(task));
        }
コード例 #10
0
        public ScrumTask Create(ScrumTask newScrumTask)
        {
            newScrumTask.CreatedAt = DateTime.Now;

            Validate(newScrumTask);

            if (_validationDictionary.IsValid)
            {
                _unitOfWork.ScrumTasks.Add(newScrumTask);
                _unitOfWork.Complate();
            }

            return(newScrumTask);
        }
コード例 #11
0
        private static void UpdatePriority(ScrumTask task, byte priority)
        {
            if (task.TaskType == TaskType.Done)
            {
                return;
            }

            if (!Enumerable.Range(1, 5).Contains(priority))
            {
                task.Priority = null;
            }

            task.Priority = priority;
        }
コード例 #12
0
        public async Task <ActionResult> Create(TaskCreateViewModel model)
        {
            //Ensure valid input
            if (!ModelState.IsValid)
            {
                return(View("_Create", model));
            }

            //Find feature
            var feature = _db.Features.Find(model.FeatureId);

            if (feature == null)
            {
                return(HttpNotFound("Feature not found."));
            }

            //TODO: Ensure user is allowed access to this project

            //Create new task
            var task = new ScrumTask()
            {
                Title         = model.Title,
                Description   = model.Description,
                State         = model.State,
                TimeRemaining = model.TimeRemaining,
                Priority      = feature.Tasks.Count + 1,
            };

            try
            {
                //Save new feature
                feature.Tasks.Add(task);
                await _db.SaveChangesAsync();

                return(Json(new { success = true }));
            }
            catch (Exception exception)
            {
                model.Error = exception.Message;
                return(View("_Create", model));
            }
        }
コード例 #13
0
        public static void FillTasksData()
        {
            _dbTasks = new Repository <ScrumTask>(_context);

            ScrumTask[] tasks = new ScrumTask[]
            {
                new ScrumTask()
                {
                    Summary        = "SVN, Project Page",
                    Story          = _dbStories.GetById(1),
                    Description    = "Set-up SVN, project folders, SharePoint, project page",
                    User           = _dbUsers.GetById(5),
                    Blocked        = false,
                    PlannedHours   = 72,
                    RemainingHours = 72,
                    ActualHours    = 0,
                    Started        = new DateTime(2018, 7, 6, 12, 45, 30),
                    Completed      = new DateTime(2018, 8, 8, 20, 45, 30),
                    Type           = TaskType.Analyses, State = TaskState.ToDo,
                    WorkNotes      = "This task should be done in 72 hours"
                },
                new ScrumTask()
                {
                    Summary        = "Validating entity classes",
                    Story          = _dbStories.GetById(2),
                    Description    = "Add validation to entity classes",
                    User           = _dbUsers.GetById(13),
                    Blocked        = false,
                    PlannedHours   = 72,
                    RemainingHours = 48,
                    ActualHours    = 24,
                    Started        = new DateTime(2018, 7, 6, 12, 45, 30),
                    Completed      = new DateTime(2018, 7, 3, 20, 45, 30),
                    Type           = TaskType.Coding, State = TaskState.InProgress,
                    WorkNotes      = "This task should be done in 72 hours"
                },
                new ScrumTask()
                {
                    Summary        = "Manual tests",
                    Story          = _dbStories.GetById(7),
                    Description    = "Run manual tests",
                    User           = _dbUsers.GetById(16),
                    Blocked        = false,
                    PlannedHours   = 26,
                    RemainingHours = 0,
                    ActualHours    = 24,
                    Started        = new DateTime(2018, 7, 6, 12, 45, 30),
                    Completed      = new DateTime(2018, 8, 7, 12, 45, 30),
                    Type           = TaskType.Documentation, State = TaskState.Done,
                    WorkNotes      = "This task should be done in 26 hours"
                },
                new ScrumTask()
                {
                    Summary        = "User docment draft review",
                    Story          = _dbStories.GetById(8),
                    Description    = "User docment draft review",
                    User           = _dbUsers.GetById(17),
                    Blocked        = false,
                    PlannedHours   = 56,
                    RemainingHours = 8,
                    ActualHours    = 48,
                    Started        = new DateTime(2018, 7, 6, 12, 45, 30),
                    Completed      = new DateTime(2018, 7, 8, 20, 45, 30),
                    Type           = TaskType.Documentation, State = TaskState.InProgress,
                    WorkNotes      = "This task should be done in 56 hours"
                },
                new ScrumTask()
                {
                    Summary        = "Automated tests",
                    Story          = _dbStories.GetById(9),
                    Description    = "Create automated tests",
                    User           = _dbUsers.GetById(23),
                    Blocked        = false,
                    PlannedHours   = 72,
                    RemainingHours = 0,
                    ActualHours    = 56,
                    Started        = new DateTime(2018, 7, 6, 12, 45, 30),
                    Completed      = new DateTime(2018, 7, 8, 20, 45, 30),
                    Type           = TaskType.Testing, State = TaskState.Done,
                    WorkNotes      = "This task should be done in 72 hours"
                }
            };

            AddToDatabase(tasks, _dbTasks);
        }
コード例 #14
0
 private static void UpdateContent(ScrumTask task, string content)
 {
     task.Content = content;
 }
コード例 #15
0
 private static void UpdateTitle(ScrumTask task, string title)
 {
     task.Title = title;
 }