Exemple #1
0
        public async Task <EntrezDatabase> SearchDatabaseStatisticsAsync(string validDatabaseName)
        {
            RestClient restClient = new RestClient(ServiceURLs.EInfoBaseURL);

            RestRequest restRequest = new RestRequest();

            restRequest.AddParameter("db", validDatabaseName.ToLower());
            restRequest.AddParameter("retmode", "json");

            var response = await restClient.Execute <DatabaseStatisticsRootObject>(restRequest);

            var databaseInfo = response.Data.einforesult.dbinfo;

            EntrezDatabase entrezDatabase = new EntrezDatabase(databaseInfo.dbname);

            entrezDatabase.DatabaseDescription = databaseInfo.description;
            entrezDatabase.LastUpdate          = DateTime.Parse(databaseInfo.lastupdate);

            return(entrezDatabase);
        }
 public SummaryRetrievalProperties(EntrezDatabase database, string paperID)
 {
     Database = database;
     PaperID  = paperID;
 }
 public AbstractRetrievalProperties(EntrezDatabase database, string paperID)
 {
     Database = database;
     PaperID  = paperID;
 }
Exemple #4
0
        public async Task <FullTextLinkOptions> RetrieveFullTextLinkOptionsAsync(EntrezDatabase database, string paperID)
        {
            var restClient = new RestClient(ServiceURLs.ELinkBaseURL);

            var restRequest = new RestRequest();

            restRequest.AddParameter("dbfrom", database.ValidEntrezName.ToLower(), ParameterType.QueryString);
            restRequest.AddParameter("retmode", "xml", ParameterType.QueryString);
            restRequest.AddParameter("id", paperID, ParameterType.QueryString);
            restRequest.AddParameter("cmd", "prlinks", ParameterType.QueryString);

            // Get the response.
            var buildUri = restClient.BuildUri(restRequest);

            buildUri.ToString();
            var response = await restClient.Execute(restRequest);

            var rawBytes = response.RawBytes;
            var result   = Encoding.UTF8.GetString(rawBytes, 0, rawBytes.Length);

            // Deserialize the XML result.
            var         deserializer = new XmlSerializer(typeof(eLinkResult));
            eLinkResult deserializedObject;

            using (var stringReader = new StringReader(result))
            {
                deserializedObject = deserializer.Deserialize(stringReader) as eLinkResult;
            }

            // Construct the link results.
            var fullTextLinkOptions = new FullTextLinkOptions();

            foreach (var paperFullTextInfo in deserializedObject.LinkSet.IdUrlList)
            {
                if (paperFullTextInfo.ObjUrl != null)
                {
                    if (paperFullTextInfo.ObjUrl.Url != null)
                    {
                        var fullTextLink = new FullTextLink();
                        var linkUrl      = paperFullTextInfo.ObjUrl.Url;
                        fullTextLink.UrlToFullText = linkUrl;

                        if (paperFullTextInfo.ObjUrl.Provider != null)
                        {
                            var provider = paperFullTextInfo.ObjUrl.Provider;
                            fullTextLink.Provider = new FullTextLinkProvider
                            {
                                Name     = provider.Name,
                                NameAbbr = provider.NameAbbr,
                                Url      = provider.Url.Value,
                                Id       = provider.Id.ToString()
                            };
                        }

                        fullTextLinkOptions.Add(fullTextLink);
                    }
                }
            }

            return(fullTextLinkOptions);
        }