From 52a978a59a63ad415e6aa9f425812a86a7a8b233 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 12 Apr 2019 16:55:14 -0400 Subject: [PATCH] cipher data --- src/Core/Models/Data/CipherData.cs | 71 ++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/Core/Models/Data/CipherData.cs diff --git a/src/Core/Models/Data/CipherData.cs b/src/Core/Models/Data/CipherData.cs new file mode 100644 index 000000000..007f51d05 --- /dev/null +++ b/src/Core/Models/Data/CipherData.cs @@ -0,0 +1,71 @@ +using Bit.Core.Models.Api; +using Bit.Core.Models.Response; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Bit.Core.Models.Data +{ + public class CipherData : Data + { + public CipherData() { } + + public CipherData(CipherResponse response, string userId = null, List collectionIds = null) + { + Id = response.Id; + OrganizationId = response.OrganizationId; + FolderId = response.FolderId; + UserId = userId; + Edit = response.Edit; + OrganizationUseTotp = response.OrganizationUseTotp; + Favorite = response.Favorite; + RevisionDate = response.RevisionDate; + Type = response.Type; + Name = response.Name; + Notes = response.Notes; + CollectionIds = collectionIds != null ? collectionIds : response.CollectionIds; + + switch(Type) + { + case Enums.CipherType.Login: + Login = new LoginData(response.Login); + break; + case Enums.CipherType.SecureNote: + SecureNote = new SecureNoteData(response.SecureNote); + break; + case Enums.CipherType.Card: + Card = new CardData(response.Card); + break; + case Enums.CipherType.Identity: + Identity = new IdentityData(response.Identity); + break; + default: + break; + } + + Fields = response.Fields?.Select(f => new FieldData(f)).ToList(); + Attachments = response.Attachments?.Select(a => new AttachmentData(a)).ToList(); + PasswordHistory = response.PasswordHistory?.Select(ph => new PasswordHistoryData(ph)).ToList(); + } + + public string Id { get; set; } + public string OrganizationId { get; set; } + public string FolderId { get; set; } + public string UserId { get; set; } + public bool Edit { get; set; } + public bool OrganizationUseTotp { get; set; } + public bool Favorite { get; set; } + public DateTime RevisionDate { get; set; } + public Enums.CipherType Type { get; set; } + public string Name { get; set; } + public string Notes { get; set; } + public LoginData Login { get; set; } + public SecureNoteData SecureNote { get; set; } + public CardData Card { get; set; } + public IdentityData Identity { get; set; } + public List Fields { get; set; } + public List Attachments { get; set; } + public List PasswordHistory { get; set; } + public List CollectionIds { get; set; } + } +}