using MTWorkHR.Application.Models; using MTWorkHR.Core.UnitOfWork; using MTWorkHR.Application.Services.Interfaces; using MTWorkHR.Core.Entities; using Microsoft.AspNetCore.Identity; using MTWorkHR.Application.Mapper; using MTWorkHR.Core.Global; using MTWorkHR.Identity.Entities; using MTWorkHR.Infrastructure.Repositories; using MTWorkHR.Infrastructure.UnitOfWorks; namespace MTWorkHR.Application.Services { public class UserTaskService : BaseService, IUserTaskService { private readonly IUnitOfWork _unitOfWork; //private readonly AppSettingsConfiguration _configuration; //private readonly GlobalInfo _globalInfo; private readonly IFileService _fileService; public UserTaskService(IUnitOfWork unitOfWork, IFileService fileService) : base(unitOfWork) { _unitOfWork = unitOfWork; _fileService = fileService; } //public override async Task GetById(long id) //{ // var entity = await _unitOfWork.Project.GetByIdAsync(id); // var response = MapperObject.Mapper.Map(entity); // return response; //} //public override async Task> GetAll() //{ // var projects = await _unitOfWork.Project.GetAllAsync(); // var response = MapperObject.Mapper.Map>(projects); // return response; //} public override async Task Create(UserTaskDto input) { if(input.TaskAttachments?.Count > 0) if ( !await _fileService.CopyFileToActualFolder(input.TaskAttachments.ToList())) throw new AppException(ExceptionEnum.CouldNotMoveFiles); var entity = Mapper.MapperObject.Mapper.Map(input); if (entity is null) { throw new AppException(ExceptionEnum.MapperIssue); } var task = await _unitOfWork.UserTask.AddAsync(entity); await _unitOfWork.CompleteAsync(); var response = Mapper.MapperObject.Mapper.Map(task); return response; } } }