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