using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AutoMapper; using AutoMapper.Configuration.Conventions; using WorkFlowCheck.Common.DTO; using WorkFlowCheck.DL.Entities; namespace WorkFlowCheck.BL.Mappings { public class MapperProfile : Profile { public MapperProfile() { CreateMap().ForMember(dest => dest.RoleDTO, opt => opt.MapFrom(src => src.UserRoles.Select(ur => ur.Role))); CreateMap(); CreateMap() .ForMember(dest => dest.RoleDTO, opt => opt.MapFrom(src => src.Role)) .ForMember(dest => dest.UserDTO, opt => opt.MapFrom(src => src.User)); CreateMap() .ForMember(dest => dest.PasswordHash, opt => opt.MapFrom()); CreateMap() .ForMember(dest => dest.CheckListTemplateRowDTO, opt => opt.MapFrom(src => src.CheckListTemplateRows)); CreateMap() .ForMember(dest => dest.EquipmentDTO, opt => opt.MapFrom(src => src.Equipment)) .ForMember(dest => dest.CheckPointDTO, opt => opt.MapFrom(src => src.CheckPoint)); CreateMap().ForMember(dest => dest.CheckListTemplateRowDTO, opt => opt.MapFrom(src => src.CheckListTemplateRows)); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap() .ForMember(dest => dest.UserDTO, opt => opt.MapFrom(src => src.User)) .ForMember(dest => dest.CheckListRowDTO, opt => opt.MapFrom(src => src.CheckListRows)); CreateMap() .ForMember(dest => dest.CheckListTemplateRowDTO, opt => opt.MapFrom(src => src.CheckListTemplateRow)) .ForMember(dest => dest.Photo, opt => opt.MapFrom(src => GetImageBytes(src.PhotoFileName))); CreateMap() .ForMember(dest => dest.RoleDTO, opt => opt.MapFrom(src => src.Role)) .ForMember(dest => dest.CheckListTemplateHeaderDTO, opt => opt.MapFrom(src => src.CheckListTemplateHeader)); } private byte[] GetImageBytes(string fileName) { try { var filePath = Path.Combine(Directory.GetCurrentDirectory(), "Images", fileName); if (File.Exists(filePath)) { return File.ReadAllBytes(filePath); } return Array.Empty(); // Visszaad egy üres byte[]-ot, ha a fájl nem található } catch (Exception) { return Array.Empty(); // Hiba esetén is üres byte[]-ot ad vissza } } } }