2020-03-24 13:01:14 +01:00
|
|
|
|
using System;
|
2020-05-06 18:54:39 +02:00
|
|
|
|
using System.Collections.Generic;
|
2020-03-24 13:01:14 +01:00
|
|
|
|
using System.Linq;
|
|
|
|
|
using AutoMapper;
|
|
|
|
|
using ModernKeePass.Domain.Entities;
|
|
|
|
|
using ModernKeePassLib;
|
2020-05-12 17:14:30 +02:00
|
|
|
|
using ModernKeePassLib.Security;
|
2020-03-24 13:01:14 +01:00
|
|
|
|
|
|
|
|
|
namespace ModernKeePass.Infrastructure.KeePass
|
|
|
|
|
{
|
2020-05-12 17:14:30 +02:00
|
|
|
|
public class MappingProfiles: Profile
|
2020-03-24 13:01:14 +01:00
|
|
|
|
{
|
2020-05-12 17:14:30 +02:00
|
|
|
|
public MappingProfiles()
|
2020-03-24 13:01:14 +01:00
|
|
|
|
{
|
2020-05-12 17:14:30 +02:00
|
|
|
|
CreateMap<KeyValuePair<string, ProtectedString>, FieldEntity>()
|
|
|
|
|
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Key))
|
|
|
|
|
.ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.Value.ReadString()))
|
|
|
|
|
.ForMember(dest => dest.IsProtected, opt => opt.MapFrom(src => src.Value.IsProtected));
|
|
|
|
|
|
2020-03-24 13:01:14 +01:00
|
|
|
|
CreateMap<PwEntry, EntryEntity>()
|
2020-03-31 19:19:02 +02:00
|
|
|
|
.ForMember(dest => dest.ParentId, opt => opt.MapFrom(src => src.ParentGroup.Uuid.ToHexString()))
|
2020-04-02 19:12:16 +02:00
|
|
|
|
.ForMember(dest => dest.ParentName, opt => opt.MapFrom(src => src.ParentGroup.Name))
|
2020-03-24 13:01:14 +01:00
|
|
|
|
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Uuid.ToHexString()))
|
2020-05-12 17:14:30 +02:00
|
|
|
|
.ForMember(dest => dest.Fields, opt => opt.MapFrom(src => src.Strings))
|
2020-03-24 13:01:14 +01:00
|
|
|
|
.ForMember(dest => dest.ForegroundColor, opt => opt.MapFrom(src => src.ForegroundColor))
|
|
|
|
|
.ForMember(dest => dest.BackgroundColor, opt => opt.MapFrom(src => src.BackgroundColor))
|
|
|
|
|
.ForMember(dest => dest.ExpirationDate, opt => opt.MapFrom(src => new DateTimeOffset(src.ExpiryTime)))
|
|
|
|
|
.ForMember(dest => dest.HasExpirationDate, opt => opt.MapFrom(src => src.Expires))
|
|
|
|
|
.ForMember(dest => dest.Icon, opt => opt.MapFrom(src => IconMapper.MapPwIconToIcon(src.IconId)))
|
2020-05-06 18:54:39 +02:00
|
|
|
|
.ForMember(dest => dest.LastModificationDate, opt => opt.MapFrom(src => new DateTimeOffset(src.LastModificationTime)))
|
|
|
|
|
.ForMember(dest => dest.Attachments, opt => opt.MapFrom(src => src.Binaries.Select(b => new KeyValuePair<string, byte[]> (b.Key, b.Value.ReadData()) )));
|
2020-05-12 17:14:30 +02:00
|
|
|
|
|
|
|
|
|
CreateMap<PwGroup, GroupEntity>()
|
|
|
|
|
.ForMember(d => d.ParentId, opts => opts.MapFrom(s => s.ParentGroup.Uuid.ToHexString()))
|
|
|
|
|
.ForMember(d => d.ParentName, opts => opts.MapFrom(s => s.ParentGroup.Name))
|
|
|
|
|
.ForMember(d => d.Id, opts => opts.MapFrom(s => s.Uuid.ToHexString()))
|
|
|
|
|
.ForMember(d => d.Name, opts => opts.MapFrom(s => s.Name))
|
|
|
|
|
.ForMember(d => d.Icon, opts => opts.MapFrom(s => IconMapper.MapPwIconToIcon(s.IconId)))
|
|
|
|
|
.ForMember(d => d.LastModificationDate, opts => opts.MapFrom(s => s.LastModificationTime))
|
|
|
|
|
.ForMember(d => d.Entries, opts => opts.MapFrom(s => s.Entries))
|
|
|
|
|
.ForMember(d => d.SubGroups, opts => opts.MapFrom(s => s.Groups))
|
|
|
|
|
.MaxDepth(2);
|
2020-03-24 13:01:14 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|