31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
using Brizco.Domain.CommandQueries.Queries;
|
|
using Brizco.Domain.Entities.Task;
|
|
|
|
namespace Brizco.Core.EntityServices;
|
|
|
|
public class ActivityService : IActivityService
|
|
{
|
|
private readonly IMediator _mediator;
|
|
private readonly IRepositoryWrapper _repositoryWrapper;
|
|
|
|
public ActivityService(IMediator mediator,IRepositoryWrapper repositoryWrapper)
|
|
{
|
|
_mediator = mediator;
|
|
_repositoryWrapper = repositoryWrapper;
|
|
}
|
|
public async System.Threading.Tasks.Task CreateActivitiesByShiftPlan(Guid shiftPlanId,CancellationToken cancellationToken)
|
|
{
|
|
var shiftPlan = await _mediator.Send(new GetShiftPlanQuery(shiftPlanId), cancellationToken);
|
|
var tasks = _repositoryWrapper.SetRepository<Brizco.Domain.Entities.Task.Task>()
|
|
.ExecuteCommand(
|
|
$@"SELECT t.Id, t.Type, t.Title t.Description t.IsDisposable t.SetFor t.HasDisposed t.ScheduleType t.Amount t.AmountType
|
|
FROM Task t
|
|
INNER JOIN TaskShifts t1 ON t.Id = t1.TaskId
|
|
INNER JOIN TaskDays t2 ON t.Id = t1.TaskId
|
|
INNER JOIN TaskRoutines t3 ON t.Id = t1.TaskId
|
|
WHERE {shiftPlan.ShiftId} = t1.ShiftId
|
|
AND {shiftPlan.PlanFor.DayOfWeek} = t2.DayOfWeek
|
|
AND ON {shiftPlan.RoutineId} = t3.RoutineId ");
|
|
|
|
}
|
|
} |