Api/Brizco.Core/EntityServices/ActivityService.cs

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 ");
}
}