$mermaidjs
Clean Architecture Demo
Loading...
Searching...
No Matches
TaskManagement.Domain.Entities.TaskItem Class Reference

TaskItem es una entidad del dominio que representa una tarea en el sistema. More...

Collaboration diagram for TaskManagement.Domain.Entities.TaskItem:

Public Member Functions

Result AssignTo (Guid userId)
 
Result Complete ()
 
Result UpdatePriority (TaskPriority newPriority)
 
void ClearDomainEvents ()
 

Static Public Member Functions

static Result< TaskItemCreate (string title, string description, TaskPriority priority, DateTime? dueDate, Guid createdBy)
 

Protected Member Functions

 TaskItem ()
 

Properties

Guid Id [get]
 
string Title = string.Empty [get]
 
string Description = string.Empty [get]
 
TaskStatus Status [get]
 
TaskPriority Priority [get]
 
DateTime? DueDate [get]
 
DateTime CreatedAt [get]
 
DateTime? CompletedAt [get]
 
Guid CreatedBy [get]
 
Guid? AssignedTo [get]
 
IReadOnlyCollection< DomainEventDomainEvents [get]
 

Detailed Description

TaskItem es una entidad del dominio que representa una tarea en el sistema.

Rol en Clean Architecture:

  • Parte del core de la aplicación en la capa del dominio
  • Encapsula lógica de negocio y reglas relacionadas con la gestión de tareas
  • Contiene principios de Domain Driven Design con el patrón Aggregate Root
  • Gestiona transiciones de estado a través de métodos del dominio: TaskItem.Complete, TaskItem.AssignTo, TaskItem.UpdatePriority
  • Mantiene invariantes y reglas de negocio tales como validación y restricciones
  • Emite eventos del dominio para comunicar ocurrencias importantes del dominio

Características clave:

  • Contiene todos los datos necesarios para representar una tarea
  • Valida reglas de negocio internamente -longitud de título, fecha de vencimiento, transiciones de estado-
  • Gestiona la colección de eventos del dominio para desacoplamiento de la infraestructura y facilidad del testing
  • Utiliza el patrón Factory -verTaskItem.Create- para creación consistente de entidades
  • Aplica restricciones de negocio: no se puede modificar tareas completadas, etc.

Dependencias:

  • Solo depende de otros tipos de la capa del dominio -verDomainEvent, Result, TaskErrors, etc.-
  • Sin dependencias en capas de infraestructura o aplicación -respetala dirección de las dependencias en Clean Architecture-

Definition at line 50 of file TaskItem.cs.

Constructor & Destructor Documentation

◆ TaskItem()

TaskManagement.Domain.Entities.TaskItem.TaskItem ( )
protected

Definition at line 94 of file TaskItem.cs.

Member Function Documentation

◆ AssignTo()

Result TaskManagement.Domain.Entities.TaskItem.AssignTo ( Guid  userId)

Definition at line 123 of file TaskItem.cs.

Here is the call graph for this function:

◆ ClearDomainEvents()

void TaskManagement.Domain.Entities.TaskItem.ClearDomainEvents ( )
Here is the call graph for this function:

◆ Complete()

Result TaskManagement.Domain.Entities.TaskItem.Complete ( )

Definition at line 133 of file TaskItem.cs.

Here is the call graph for this function:

◆ Create()

static Result< TaskItem > TaskManagement.Domain.Entities.TaskItem.Create ( string  title,
string  description,
TaskPriority  priority,
DateTime?  dueDate,
Guid  createdBy 
)
static

Definition at line 98 of file TaskItem.cs.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdatePriority()

Result TaskManagement.Domain.Entities.TaskItem.UpdatePriority ( TaskPriority  newPriority)

Definition at line 143 of file TaskItem.cs.

Here is the call graph for this function:

Property Documentation

◆ AssignedTo

Guid? TaskManagement.Domain.Entities.TaskItem.AssignedTo
get

Definition at line 84 of file TaskItem.cs.

◆ CompletedAt

DateTime? TaskManagement.Domain.Entities.TaskItem.CompletedAt
get

Definition at line 76 of file TaskItem.cs.

◆ CreatedAt

DateTime TaskManagement.Domain.Entities.TaskItem.CreatedAt
get

Definition at line 72 of file TaskItem.cs.

◆ CreatedBy

Guid TaskManagement.Domain.Entities.TaskItem.CreatedBy
get

Definition at line 80 of file TaskItem.cs.

◆ Description

string TaskManagement.Domain.Entities.TaskItem.Description = string.Empty
get

Definition at line 58 of file TaskItem.cs.

◆ DomainEvents

IReadOnlyCollection<DomainEvent> TaskManagement.Domain.Entities.TaskItem.DomainEvents
get

Definition at line 91 of file TaskItem.cs.

◆ DueDate

DateTime? TaskManagement.Domain.Entities.TaskItem.DueDate
get

Definition at line 68 of file TaskItem.cs.

◆ Id

Guid TaskManagement.Domain.Entities.TaskItem.Id
get

Definition at line 52 of file TaskItem.cs.

◆ Priority

TaskPriority TaskManagement.Domain.Entities.TaskItem.Priority
get

Definition at line 64 of file TaskItem.cs.

◆ Status

TaskStatus TaskManagement.Domain.Entities.TaskItem.Status
get

Definition at line 60 of file TaskItem.cs.

◆ Title

string TaskManagement.Domain.Entities.TaskItem.Title = string.Empty
get

Definition at line 56 of file TaskItem.cs.


The documentation for this class was generated from the following file: