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.Infrastructure.Entities; using MTWorkHR.Infrastructure.Repositories; using MTWorkHR.Infrastructure.UnitOfWorks; using MTWorkHR.Core.IRepositories.Base; using Microsoft.AspNetCore.Http; using System.IO; namespace MTWorkHR.Application.Services { public class ContractTaskAttachmentService : BaseService, IContractTaskAttachmentService { private readonly IUnitOfWork _unitOfWork; //private readonly AppSettingsConfiguration _configuration; //private readonly GlobalInfo _globalInfo; private readonly IFileService _fileService; public ContractTaskAttachmentService(IUnitOfWork unitOfWork, IFileService fileService) : base(unitOfWork) { _unitOfWork = unitOfWork; _fileService = fileService; } public override async Task GetById(long id) { var entity = await _unitOfWork.ContractTaskAttachment.GetByIdAsync(id); var response = MapperObject.Mapper.Map(entity); return response; } public override async Task Create(ContractTaskAttachmentDto input) { if (input.FileData != null) { // input.FilePath = await _fileService.UploadFile(input.FileData); input.OriginalName = input.FileData.FileName; List attachs = new List(); attachs.Add(new AttachmentDto {FileData = input.FileData, OriginalName = input.OriginalName, FileName = input.FileData.FileName }); _fileService.CopyFileToCloud(ref attachs); } var entity = MapperObject.Mapper.Map(input); if (entity is null) { throw new AppException(ExceptionEnum.MapperIssue); } var task = await _unitOfWork.ContractTaskAttachment.AddAsync(entity); await _unitOfWork.CompleteAsync(); var response = MapperObject.Mapper.Map(task); //using (var stream = new MemoryStream(attach.Content)) //{ // var file = new FormFile(stream, 0, stream.Length, Path.GetFileNameWithoutExtension(attach.FileName), attach.FileName) // { // Headers = new HeaderDictionary(), // ContentType = attach.ContentType, // }; // System.Net.Mime.ContentDisposition cd = new System.Net.Mime.ContentDisposition // { // FileName = file.FileName // }; // file.ContentDisposition = cd.ToString(); //} return response; } //public override async Task Update(ContractTaskAttachmentDto input) //{ // var entitiy = await _unitOfWork.ContractTaskAttachment.GetByIdAsync(input.Id); // if (entitiy == null) // throw new AppException(ExceptionEnum.RecordNotExist); // MapperObject.Mapper.Map(input, entitiy, typeof(ContractTaskAttachmentDto), typeof(ContractTaskAttachment)); // await _unitOfWork.CompleteAsync(); // return input; //} } }