$mermaidjs
Clean Architecture Demo
Loading...
Searching...
No Matches
TaskRepository.cs
Go to the documentation of this file.
1
// TaskManagement.Infrastructure/Persistence/Repositories/TaskRepository.cs
2
using
Microsoft.EntityFrameworkCore;
3
using
TaskManagement.Application.Interfaces
;
4
using
TaskManagement.Domain.Entities
;
5
6
namespace
TaskManagement.Infrastructure.Persistence.Repositories
;
7
53
public
sealed
class
TaskRepository
:
ITaskRepository
54
{
55
private
readonly
TaskDbContext
_dbContext;
56
public
TaskRepository
(
TaskDbContext
dbContext)
57
{
58
_dbContext = dbContext;
59
}
60
public
async Task<TaskItem?>
GetByIdAsync
(
61
Guid
id
,
62
CancellationToken cancellationToken =
default
)
63
{
64
return
await _dbContext.Tasks
65
.AsNoTracking()
// Read-only query
66
.FirstOrDefaultAsync(t => t.Id ==
id
, cancellationToken).ConfigureAwait(
false
);
67
}
68
public
async Task<IReadOnlyList<TaskItem>>
GetByAssigneeAsync
(
69
Guid userId,
70
CancellationToken cancellationToken =
default
)
71
{
72
return
await _dbContext.Tasks
73
.AsNoTracking()
74
.Where(t => t.AssignedTo == userId)
75
.OrderByDescending(t => t.Priority)
76
.ThenBy(t => t.DueDate)
77
.ToListAsync(cancellationToken).ConfigureAwait(
false
);
78
}
79
public
async Task<IReadOnlyList<TaskItem>>
GetOverdueAsync
(
80
CancellationToken cancellationToken =
default
)
81
{
82
return
await _dbContext.Tasks
83
.AsNoTracking()
84
.Where(t => t.DueDate < DateTime.UtcNow
85
&& t.Status !=
TaskManagement
.
Domain
.
Entities
.TaskStatus.Completed)
86
.ToListAsync(cancellationToken).ConfigureAwait(
false
);
87
}
88
public
async Task
AddAsync
(
89
TaskItem
task,
90
CancellationToken cancellationToken =
default
)
91
{
92
await _dbContext.Tasks.AddAsync(task, cancellationToken).ConfigureAwait(
false
);
93
}
94
public
void
Update
(
TaskItem
task)
95
{
96
_dbContext.Tasks.Update(task);
97
}
98
public
void
Delete
(
TaskItem
task)
99
{
100
_dbContext.Tasks.Remove(task);
101
}
102
}
TaskManagement.Domain.Entities.TaskItem
TaskItem es una entidad del dominio que representa una tarea en el sistema.
Definition
TaskItem.cs:51
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository
TaskRepository es el repositorio de escritura para entidades TaskItem.
Definition
TaskRepository.cs:54
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository.Update
void Update(TaskItem task)
Definition
TaskRepository.cs:94
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository.TaskRepository
TaskRepository(TaskDbContext dbContext)
Definition
TaskRepository.cs:56
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository.Delete
void Delete(TaskItem task)
Definition
TaskRepository.cs:98
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository.GetByIdAsync
async Task< TaskItem?> GetByIdAsync(Guid id, CancellationToken cancellationToken=default)
Definition
TaskRepository.cs:60
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository.GetOverdueAsync
async Task< IReadOnlyList< TaskItem > > GetOverdueAsync(CancellationToken cancellationToken=default)
Definition
TaskRepository.cs:79
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository.AddAsync
async Task AddAsync(TaskItem task, CancellationToken cancellationToken=default)
Definition
TaskRepository.cs:88
TaskManagement.Infrastructure.Persistence.Repositories.TaskRepository.GetByAssigneeAsync
async Task< IReadOnlyList< TaskItem > > GetByAssigneeAsync(Guid userId, CancellationToken cancellationToken=default)
Definition
TaskRepository.cs:68
TaskManagement.Infrastructure.Persistence.TaskDbContext
TaskDbContext es el DbContext de Entity Framework Core para gestión de tareas.
Definition
TaskDbContext.cs:57
TaskManagement.Application.Interfaces.ITaskRepository
ITaskRepository es la interfaz del repositorio de escritura para agregado TaskItem.
Definition
ITaskRepository.cs:41
TaskManagement.Application.Interfaces
Definition
IDomainEventDispatcher.cs:3
TaskManagement.Domain.Entities
Definition
TaskItem.cs:4
TaskManagement.Domain
Definition
Result.cs:2
TaskManagement.Infrastructure.Persistence.Repositories
Definition
TaskReadRepository.cs:10
TaskManagement
Definition
TasksController.cs:10
src
TaskManagement.Infrastructure
Persistence
Repositories
TaskRepository.cs
Generated by
1.9.8