Api/Berizco.Repository/Handlers/Task/CreateTaskCommandHandler.cs

52 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Brizco.Domain.Dtos.LargDtos;
namespace Brizco.Repository.Handlers.Task;
public class CreateActivityCommandHandler : IRequestHandler<CreateTaskCommand, TaskLDto>
{
private readonly IRepositoryWrapper _repositoryWrapper;
public CreateActivityCommandHandler(IRepositoryWrapper repositoryWrapper)
{
_repositoryWrapper = repositoryWrapper;
}
public async Task<TaskLDto> Handle(CreateTaskCommand request, CancellationToken cancellationToken)
{
var task = Domain.Entities.Task.Task
.Create(request.Title,
request.Description,
request.Type,
request.IsRelatedToShift,
request.IsRelatedToRole,
request.IsRelatedToPerson,
request.IsDisposable,
request.SetFor,
request.HasDisposed,
request.Amount,
request.AmountType);
if (task.IsRelatedToPerson)
{
if (request.Users.Count == 0)
throw new AppException("اگر فعالیت برای یک فرد انتخاب شده باشد باید لیست افراد را ارسال نمایید");
task.AddUser(request.Users.ToArray());
}
if (task.IsRelatedToRole)
{
if (request.Roles.Count == 0)
throw new AppException("اگر فعالیت برای یک گروه نقش انتخاب شده باشد باید لیست نقش ها را ارسال نمایید");
task.AddShift(request.Roles.ToArray());
}
if (task.IsRelatedToShift)
{
if (request.Shifts.Count == 0)
throw new AppException("اگر فعالیت برای یک شیفت انتخاب شده باشد باید لیست شیفت ها را ارسال نمایید");
task.AddRole(request.Shifts.ToArray());
}
_repositoryWrapper.SetRepository<Domain.Entities.Task.Task>().Add(task);
await _repositoryWrapper.SaveChangesAsync(cancellationToken);
return task.AdaptToLDto();
}
}