Exemple #1
0
        public OperationResult <ChildTask> EditTask(string userId, string taskId, TaskToManipulateDTO item)
        {
            if (!IsTaskExists(taskId, out var task))
            {
                return(new OperationResult <ChildTask>()
                {
                    Messages = new[] { $"There is no childTask with id = [{taskId}]" }
                });
            }

            if (task.ParentId != userId)
            {
                return(new OperationResult <ChildTask>()
                {
                    Messages = new[] { "You have no right to do this" }
                });
            }

            task.Name       = item.Name ?? task.Name;
            task.IsFinished = item.IsFinished ?? task.IsFinished;
            task.StartDate  = item.StartDate ?? task.StartDate;
            task.EndDate    = item.EndDate ?? task.EndDate;

            return(new OperationResult <ChildTask>()
            {
                Success = true,
                Messages = new[] { "Task was updated successfully." },
                Data = new[] { _tasksRepo.Update(task) }
            });
        }
Exemple #2
0
        public OperationResult <ChildTask> AddTasks(string userId, TaskToManipulateDTO item)
        {
            var childUser = _userSrv.FindChildByParentId(userId);
            var success   = true;

            if (childUser != null)
            {
                var tasks = new List <ChildTask>()
                {
                };

                var messages = new List <string>()
                {
                };

                if (!IsValid(item, userId))
                {
                    messages.Add($"Task with name = [{item.Name}], " +
                                 $"start_time = [{item.StartDate}] and " +
                                 $"end_time = [{item.EndDate}] " +
                                 "may not be added cause of ovelapping.");
                    success = false;
                }
                else
                {
                    tasks.Add(new ChildTask()
                    {
                        Name      = item.Name,
                        StartDate = (DateTime)item.StartDate,
                        EndDate   = (DateTime)item.EndDate,
                        ParentId  = userId,
                        ChildId   = childUser.Id
                    });
                }

                return(new OperationResult <ChildTask>()
                {
                    Success = success,
                    Messages = new[] { "Following tasks were added successfully." },
                    Data = _tasksRepo.Add(tasks)
                });
            }

            return(new OperationResult <ChildTask>()
            {
                Messages = new[] { "You don`t have registered children." }
            });
        }
Exemple #3
0
        private bool IsValid(TaskToManipulateDTO item, string parentId)
        {
            if (item.StartDate >= item.EndDate)
            {
                return(false);
            }

            var hasCrossItems = _tasksRepo.Data.Any(x => (item.StartDate <x.EndDate &&
                                                                          item.EndDate> x.StartDate) && x.ParentId.Equals(parentId));

            if (hasCrossItems)
            {
                return(false);
            }

            return(true);
        }
        public async Task <IActionResult> EditTask(string taskId, [FromBody] TaskToManipulateDTO item)
        {
            var user = await _helper.GetUserFromClaims(User.Claims);

            if (user.IsChild)
            {
                return(StatusCode(403, "You have no rights to do this."));
            }

            var result = _taskSrv.EditTask(user.Id, taskId, item);

            if (result.Success)
            {
                return(Ok(result));
            }

            return(BadRequest(result));
        }