/// <summary>
        /// Parse the attribute object and serializes the Certificates objects.
        /// </summary>
        /// <returns>Task</returns>
        /// <param name="obj">Object.</param>
        private async Task SaveCertificates(Attribute obj)
        {
            if (obj.Certificates == null || obj.Certificates.Count == 0)
            {
                await CreateTableAsync <AttributeCertificateMapping>();

                return;
            }

            //for each certificate in the attribute
            foreach (KeyValuePair <string, Certificate> entry in obj.Certificates)
            {
                await _certMapper.SaveAsync(entry.Value);

                //Try to get the one to many mapping between an attributes and its
                //certificates, if it already exists
                AttributeCertificateMapping attrCert;
                if ((attrCert = await GetAttributeCertificateMappingAsync(obj.UID, entry.Value.UID)) == null)
                {
                    //Create the one to many mapping between an attributes and its
                    //certificates
                    attrCert = new AttributeCertificateMapping()
                    {
                        AttrUID = obj.UID,
                        CertUID = entry.Value.UID
                    };

                    //save the mapping
                    IMapper <AttributeCertificateMapping> attrCertMapper = new Mapper <AttributeCertificateMapping>(_dbFilePath);
                    await attrCertMapper.SaveAsync(attrCert);
                }
            }
        }
        private async Task <AttributeCertificateMapping> GetAttributeCertificateMappingAsync(int attrUID, int certUID)
        {
            SQLiteConnection conn = await ConnectToTableAsync <AttributeCertificateMapping>();

            return(await Task.Run(() =>
            {
                AttributeCertificateMapping acMapping = conn
                                                        .Table <AttributeCertificateMapping>()
                                                        .Where(mapping => mapping.AttrUID == attrUID && mapping.CertUID == certUID).FirstOrDefault();
                conn.Close();
                return acMapping;
            }));
        }