public bool ContainsSenderKey(SenderKeyName senderKeyName)
        {
            String senderKeyId = senderKeyName.GetSender().GetName() + " : " + senderKeyName.GetGroupId();
            SenderKeysRepository senderKeysRepository = new SenderKeysRepository();

            return(senderKeysRepository.Contains(senderKeyId));
        }
        public void RemoveSenderKey(SenderKeyName senderKeyName)
        {
            String senderKeyId = senderKeyName.GetSender().GetName() + " : " + senderKeyName.GetGroupId();
            SenderKeysRepository senderKeysRepository = new SenderKeysRepository();
            List <SenderKeys>    senderKeys           = senderKeysRepository.GetSenderKeys(senderKeyId);

            if (senderKeys != null && senderKeys.Count > 0)
            {
                SenderKeys senderKey = senderKeys.First();
                senderKeysRepository.Delete(senderKey);
            }
        }
        public List <SenderKeyRecord> LoadSenderKeys()
        {
            List <SenderKeyRecord> retVal = new List <SenderKeyRecord>();

            SenderKeysRepository senderKeysRepository = new SenderKeysRepository();
            List <SenderKeys>    senderKeys           = (List <SenderKeys>)senderKeysRepository.GetAll();

            foreach (SenderKeys senderKey in senderKeys)
            {
                retVal.Add(new SenderKeyRecord(senderKey.Record));
            }

            return(retVal.Count > 0 ? retVal : null);
        }
        public SenderKeyRecord LoadSenderKey(SenderKeyName senderKeyName)
        {
            String senderKeyId = senderKeyName.GetSender().GetName() + " : " + senderKeyName.GetGroupId();
            SenderKeysRepository senderKeysRepository = new SenderKeysRepository();
            List <SenderKeys>    senderKeys           = senderKeysRepository.GetSenderKeys(senderKeyId);

            if (senderKeys != null && senderKeys.Count > 0)
            {
                SenderKeys      senderKey       = senderKeys.First();
                SenderKeyRecord senderKeyRecord = new SenderKeyRecord(senderKey.Record);
                return(senderKeyRecord);
            }

            return(new SenderKeyRecord());
        }
        public void StoreSenderKey(SenderKeyName senderKeyName, SenderKeyRecord record)
        {
            if (ContainsSenderKey(senderKeyName))
            {
                RemoveSenderKey(senderKeyName);
            }

            String senderKeyId = senderKeyName.GetSender().GetName() + " : " + senderKeyName.GetGroupId();
            SenderKeysRepository senderKeysRepository = new SenderKeysRepository();

            SenderKeys senderKey = new SenderKeys()
            {
                Record      = record.Serialize(),
                SenderKeyId = senderKeyId
            };

            senderKeysRepository.Save(senderKey);
        }
        public void Clear()
        {
            IdentityKeysRepository identityKeysRepository = new IdentityKeysRepository();

            identityKeysRepository.DeleteAll();

            PreKeysRepository preKeysRepository = new PreKeysRepository();

            preKeysRepository.DeleteAll();

            SenderKeysRepository senderKeysRepository = new SenderKeysRepository();

            senderKeysRepository.DeleteAll();

            SessionsRepository sessionsRepository = new SessionsRepository();

            sessionsRepository.DeleteAll();

            SignedPreKeysRepository signedPreKeysRepository = new SignedPreKeysRepository();

            signedPreKeysRepository.DeleteAll();
        }