feat: simplify StartWork and StopWork methods by removing userId parameter
This commit is contained in:
@@ -45,12 +45,12 @@ public class ChangeStatusSectionCommandHandler : IBaseCommandHandler<ChangeStatu
|
||||
if (section.Status == TaskSectionStatus.InProgress)
|
||||
{
|
||||
// Coming FROM InProgress: Stop the active activity
|
||||
section.StopWork(currentUser, request.Status);
|
||||
section.StopWork(request.Status);
|
||||
}
|
||||
else if (request.Status == TaskSectionStatus.InProgress)
|
||||
{
|
||||
// Going TO InProgress: Start work and create activity
|
||||
section.StartWork(currentUser);
|
||||
section.StartWork();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -82,11 +82,11 @@ public class ChangeStatusSectionCommandHandler : IBaseCommandHandler<ChangeStatu
|
||||
// Valid transitions matrix
|
||||
var validTransitions = new Dictionary<TaskSectionStatus, List<TaskSectionStatus>>
|
||||
{
|
||||
{ TaskSectionStatus.ReadyToStart, new List<TaskSectionStatus> { TaskSectionStatus.InProgress } },
|
||||
{ TaskSectionStatus.InProgress, new List<TaskSectionStatus> { TaskSectionStatus.Incomplete, TaskSectionStatus.Completed } },
|
||||
{ TaskSectionStatus.Incomplete, new List<TaskSectionStatus> { TaskSectionStatus.InProgress, TaskSectionStatus.Completed } },
|
||||
{ TaskSectionStatus.Completed, new List<TaskSectionStatus> { TaskSectionStatus.InProgress, TaskSectionStatus.Incomplete } }, // Can return to InProgress or Incomplete
|
||||
{ TaskSectionStatus.NotAssigned, new List<TaskSectionStatus> { TaskSectionStatus.InProgress, TaskSectionStatus.ReadyToStart } }
|
||||
{ TaskSectionStatus.ReadyToStart, [TaskSectionStatus.InProgress] },
|
||||
{ TaskSectionStatus.InProgress, [TaskSectionStatus.Incomplete, TaskSectionStatus.Completed] },
|
||||
{ TaskSectionStatus.Incomplete, [TaskSectionStatus.InProgress, TaskSectionStatus.Completed] },
|
||||
{ TaskSectionStatus.Completed, [TaskSectionStatus.InProgress, TaskSectionStatus.Incomplete] }, // Can return to InProgress or Incomplete
|
||||
{ TaskSectionStatus.NotAssigned, [TaskSectionStatus.InProgress, TaskSectionStatus.ReadyToStart] }
|
||||
};
|
||||
|
||||
if (!validTransitions.TryGetValue(currentStatus, out var allowedTargets))
|
||||
|
||||
@@ -104,13 +104,8 @@ public class TaskSection : EntityBase<Guid>
|
||||
UpdateStatus(TaskSectionStatus.NotAssigned);
|
||||
}
|
||||
|
||||
public void StartWork(long userId, string? notes = null)
|
||||
public void StartWork(string? notes = null)
|
||||
{
|
||||
if (CurrentAssignedUserId != userId)
|
||||
{
|
||||
throw new BadRequestException("کاربر مجاز به شروع این بخش نیست");
|
||||
}
|
||||
|
||||
// if (Status == TaskSectionStatus.Completed)
|
||||
// {
|
||||
// throw new BadRequestException("این بخش قبلاً تکمیل شده است");
|
||||
@@ -121,14 +116,14 @@ public class TaskSection : EntityBase<Guid>
|
||||
throw new BadRequestException("یک فعالیت در حال انجام وجود دارد");
|
||||
}
|
||||
|
||||
var activity = new TaskSectionActivity(Id, userId, notes);
|
||||
var activity = new TaskSectionActivity(Id, CurrentAssignedUserId, notes);
|
||||
_activities.Add(activity);
|
||||
|
||||
|
||||
UpdateStatus(TaskSectionStatus.InProgress);
|
||||
}
|
||||
|
||||
public void StopWork(long userId, TaskSectionStatus taskSectionStatus, string? endNotes = null)
|
||||
public void StopWork(TaskSectionStatus taskSectionStatus, string? endNotes = null)
|
||||
{
|
||||
var activeActivity = _activities.FirstOrDefault(a => a.IsActive);
|
||||
if (activeActivity == null)
|
||||
@@ -136,11 +131,6 @@ public class TaskSection : EntityBase<Guid>
|
||||
throw new BadRequestException("هیچ فعالیت فعالی یافت نشد");
|
||||
}
|
||||
|
||||
if (activeActivity.UserId != userId)
|
||||
{
|
||||
throw new BadRequestException("کاربر مجاز به توقف این فعالیت نیست");
|
||||
}
|
||||
|
||||
UpdateStatus(taskSectionStatus);
|
||||
activeActivity.StopWork(endNotes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user