Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions Web.Api/Controllers/TaskController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ public async Task<ActionResult<TaskDto>> GetTaskById([FromHeader] Guid userId, G
return StatusCode(403);
}

TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskByIdAsync(taskId, userId);
if (taskItem is null)
TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskNotesAndStatusByIdAsync(taskId, userId);
if(taskItem is null)
{
_logger.LogWarning($"TaskId {taskId} not found for UserId {userId}");
return NotFound(taskId);
Expand All @@ -50,6 +50,7 @@ public async Task<ActionResult<TaskDto>> GetTaskById([FromHeader] Guid userId, G
Priority = taskItem.Priority,
CreatedDate = taskItem.CreatedDate,
CreatedUserId = taskItem.CreatedUserId,
ParentId = taskItem.SubTaskSubTaskItems.SingleOrDefault()?.TaskItemId,
Notes = taskItem.TaskItemNotes.Select //within the TaskDto create a new List of Notes that grabs TaskItemNotes and set their properties
(note => new NoteDto //create new instance of NoteDto
{
Expand Down Expand Up @@ -115,7 +116,7 @@ public async Task<ActionResult<TaskDto>> CreateTask([FromHeader] Guid userId, Ta

await _unitOfWork.TaskItem.CreateTaskAsync(taskCreation); //UofW takes the TaskItem class and calls the CreateTask method from the TaskItemRepo
await _unitOfWork.SaveChangesAsync(); //UofW calls the SaveChanges method
taskCreation = await _unitOfWork.TaskItem.GetTaskByIdAsync(taskCreation.Id, userId);
taskCreation = await _unitOfWork.TaskItem.GetTaskNotesAndStatusByIdAsync(taskCreation.Id, userId);

_logger.LogInformation($"Task Creation is Successfull for userId {userId}");

Expand Down Expand Up @@ -221,7 +222,7 @@ public async Task<ActionResult<NoteDto>> DeleteNote([FromHeader] Guid userId, Gu
return StatusCode(403);
}

TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskByIdAsync(taskId, userId);
TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskNotesByIdAsync(taskId, userId);
if (taskItem is null)
{
_logger.LogWarning($"TaskId {taskId} not found for UserId {userId}");
Expand Down Expand Up @@ -264,7 +265,7 @@ public async Task<ActionResult<TaskDto>> DeleteTaskById([FromHeader] Guid userId
_logger.LogWarning ($"User id {userId} not authorized");
return StatusCode(403);
}
TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskByIdAsync(taskId, userId);
TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskNotesAndStatusByIdAsync(taskId, userId);
if (taskItem is null)
{
_logger.LogWarning($"Task item {taskId} not found for user {userId}");
Expand Down Expand Up @@ -318,7 +319,7 @@ public async Task<ActionResult<TaskDto>> StatusChangeComplete([FromHeader] Guid
return StatusCode(403);
}

TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskByIdAsync(taskId, userId);
TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskNotesAndStatusByIdAsync(taskId, userId);
if (taskItem is null)
{
_logger.LogWarning($"TaskId {taskId} not found for UserId {userId}");
Expand Down Expand Up @@ -354,12 +355,12 @@ public async Task<ActionResult<TaskDto>> StatusChangeComplete([FromHeader] Guid
CreatedUser = n.CreatedUserId
}).ToList(),

CurrentStatus = new StatusDto
{
Id = _statusChange.CompleteId,
Name = _statusChange.Complete,
Code = _statusChange.Code2
},
CurrentStatus = new StatusDto
{
Id = _statusChange.CompleteId,
Name = _statusChange.Complete,
Code = _statusChange.Code2
},

CreatedDate = taskItem.CreatedDate,
CreatedUserId = taskItem.CreatedUserId,
Expand Down Expand Up @@ -389,7 +390,7 @@ public async Task<ActionResult<TaskDto>> EditTask([FromHeader] Guid userId, Guid
return StatusCode(403);
}

TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskByIdAsync(taskId, userId);
TaskItem? taskItem = await _unitOfWork.TaskItem.GetTaskNotesAndStatusByIdAsync(taskId, userId);
if (taskItem is null)
{
_logger.LogWarning($"TaskId {taskId} not found for UserId {userId}");
Expand Down
1 change: 1 addition & 0 deletions Web.Api/Dto/Response/TaskDto.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ public class TaskDto
public List<StatusDto> StatusHistories { get; set; } = [];
public DateTime CreatedDate { get; set; }
public Guid CreatedUserId { get; set; }
public Guid? ParentId { get; set; }
}
}
23 changes: 21 additions & 2 deletions Web.Api/Persistence/Repositories/TaskItemRepo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,29 @@ public TaskItemRepo(TaskManagerAppDBContext context)
/// <param name="taskId"></param>
/// <param name="userId"></param>
/// <returns></returns>

public async Task<TaskItem?> GetTaskByIdAsync(Guid taskId, Guid userId)
{
return await _context.TaskItems.Include(item => item.TaskItemNotes).Include(history => history.TaskItemStatusHistories)
.ThenInclude(stat => stat.Status).SingleOrDefaultAsync(ti => ti.Id == taskId && ti.CreatedUserId == userId);
return await _context.TaskItems.SingleOrDefaultAsync(ti => ti.Id == taskId && ti.CreatedUserId == userId);
}

public async Task<TaskItem?> GetTaskNotesByIdAsync(Guid taskId, Guid userId)
{
return await _context.TaskItems.Include(task => task.TaskItemNotes).SingleOrDefaultAsync(ti => ti.Id == taskId && ti.CreatedUserId == userId);
}

public async Task<TaskItem?> GetTaskTaskWithinListsByIdAsync(Guid taskId, Guid userId)
{
return await _context.TaskItems.Include(task => task.TaskWithinLists).SingleOrDefaultAsync(ti => ti.Id == taskId && ti.CreatedUserId == userId);
}

public async Task<TaskItem?> GetTaskNotesAndStatusByIdAsync(Guid taskId, Guid userId)
{
return await _context.TaskItems.Include(task => task.TaskItemNotes)
.Include(task => task.SubTaskSubTaskItems)
.Include(task => task.TaskItemStatusHistories)
.ThenInclude(stat => stat.Status)
.SingleOrDefaultAsync(ti => ti.Id == taskId && ti.CreatedUserId == userId);
}

public async Task CreateTaskAsync(TaskItem taskItem)
Expand Down