Api/Brizco.Domain/Entities/Shift/Aggregate.Shift.cs

47 lines
1.3 KiB
C#

using System;
namespace Brizco.Domain.Entities.Shift;
public partial class Shift
{
public static Shift Create(string title, string description, TimeSpan startAt, TimeSpan endAt,Guid complexId)
{
return new Shift(title, description, startAt, endAt,complexId);
}
public ShiftDay SetDay(DayOfWeek dayOfWeek)
{
var shiftDay = new ShiftDay(dayOfWeek, this.Id);
this.Days.Add(shiftDay);
return shiftDay;
}
public ShiftPlan AddPlan(DateTime planDate,Guid routineId)
{
var plan = new ShiftPlan(planDate , routineId, Id ,this.ComplexId);
Plans.Add(plan);
return plan;
}
public ShiftRoutine AddRoutine(Guid routineId)
{
var routine = new ShiftRoutine(routineId, this.Id);
Routines.Add(routine);
return routine;
}
}
public partial class ShiftPlan
{
public ShiftPlanUser AddUser(Guid positionId,Guid userId)
{
var planUser = new ShiftPlanUser(Id , positionId, userId);
Users.Add(planUser);
return planUser;
}
public void CompletePlan(string completeDescription,int completePercent)
{
IsCompleted = true;
CompleteDescription = completeDescription;
CompletePercent = completePercent;
}
}