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) } }); }
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." } }); }
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)); }