Exemplo n.º 1
0
        private async Task <DlMetadataDetails> SetDlBookMetaData(int bookId, UserCredential userCredential, string deviceId)
        {
            DlMetadata dlMetaData = new DlMetadata()
            {
                Email    = userCredential.Email,
                DeviceId = deviceId,
                DlId     = bookId
            };
            DlMetadataDetails dlMetaDataDetails = null;
            //before call this function,program has ensured network available.
            var result = await deliveryService.DlMetadata(dlMetaData);

            if (result.IsSuccess)
            {
                dlMetaDataDetails = JsonConvert.DeserializeObject <DlMetadataDetails>(result.Content);
                if (dlMetaDataDetails != null)
                {
                    var metadata = publicationAccess.GetDlBookMetedata(bookId, userCredential);
                    if (metadata == null)//insert metadata
                    {
                        BookMetadata entity = new BookMetadata
                        {
                            BookId            = bookId,
                            ServiceCode       = userCredential.ServiceCode,
                            Email             = userCredential.Email,
                            IncludedGuideCard = JsonConvert.SerializeObject(dlMetaDataDetails.GuideCard)
                        };
                        publicationAccess.InsertMetadata(entity);
                    }
                    else//update metadata
                    {
                        metadata.IncludedGuideCard = JsonConvert.SerializeObject(dlMetaDataDetails.GuideCard);
                        publicationAccess.Update(metadata);
                    }
                }
            }
            return(dlMetaDataDetails);
        }