예제 #1
0
        public CipherData(CipherResponse response, string userId = null, HashSet <string> collectionIds = null)
        {
            Id                  = response.Id;
            OrganizationId      = response.OrganizationId;
            FolderId            = response.FolderId;
            UserId              = userId;
            Edit                = response.Edit;
            ViewPassword        = response.ViewPassword;
            OrganizationUseTotp = response.OrganizationUseTotp;
            Favorite            = response.Favorite;
            RevisionDate        = response.RevisionDate;
            Type                = response.Type;
            Name                = response.Name;
            Notes               = response.Notes;
            CollectionIds       = collectionIds?.ToList() ?? response.CollectionIds;
            Reprompt            = response.Reprompt;

            try // Added to address Issue (https://github.com/bitwarden/mobile/issues/1006)
            {
                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;
                }
            }
            catch
            {
                System.Diagnostics.Trace.WriteLine(new StringBuilder()
                                                   .Append("BitWarden CipherData constructor failed to initialize CyperType '")
                                                   .Append(Type)
                                                   .Append("'; id = {")
                                                   .Append(Id)
                                                   .AppendLine("}")
                                                   .ToString(), "BitWarden CipherData constructor");
            }

            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();
            DeletedDate     = response.DeletedDate;
        }
예제 #2
0
        public CipherData(CipherResponse response, string userId = null, HashSet <string> collectionIds = null)
        {
            Id                  = response.Id;
            OrganizationId      = response.OrganizationId;
            FolderId            = response.FolderId;
            UserId              = userId;
            Edit                = response.Edit;
            ViewPassword        = response.ViewPassword;
            OrganizationUseTotp = response.OrganizationUseTotp;
            Favorite            = response.Favorite;
            RevisionDate        = response.RevisionDate;
            Type                = response.Type;
            Name                = response.Name;
            Notes               = response.Notes;
            CollectionIds       = collectionIds?.ToList() ?? 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();
            DeletedDate     = response.DeletedDate;
        }