using Bit.Core.Models.Data; using Bit.Core.Models.View; using System.Collections.Generic; using System.Threading.Tasks; namespace Bit.Core.Models.Domain { public class Attachment : Domain { private HashSet _map = new HashSet { "Id", "Url", "SizeName", "FileName", "Key" }; public Attachment() { } public Attachment(AttachmentData obj, bool alreadyEncrypted = false) { Size = obj.Size; BuildDomainModel(this, obj, _map, alreadyEncrypted, new HashSet { "Id", "Url", "SizeName" }); } public string Id { get; set; } public string Url { get; set; } public string Size { get; set; } public string SizeName { get; set; } public CipherString Key { get; set; } public CipherString FileName { get; set; } public async Task DecryptAsync(string orgId) { var view = await DecryptObjAsync(new AttachmentView(this), this, new HashSet { "FileName" }, orgId); // TODO: Decrypt key return view; } public AttachmentData ToAttachmentData() { var a = new AttachmentData(); a.Size = Size; BuildDataModel(this, a, _map, new HashSet { "Id", "Url", "SizeName" }); return a; } } }