public void DrawProfilesModule()
        {
            var dataIO = new Profiles.Profile.Utilities.DataIO();

            // Get concept publication timeline
            using (var reader = dataIO.GetGoogleTimeline(base.RDFTriple, "[Profile.Module].[NetworkAuthorshipTimeline.Concept.GetData]"))
            {
                while (reader.Read())
                {
                    timeline.Src          = reader["gc"].ToString();
                    timeline.Alt          = reader["alt"].ToString();
                    litTimelineTable.Text = reader["asText"].ToString();
                }
                reader.Close();
            }

            /* Reader returns multiple result sets in the following order
             * 1) Cited publications
             * 2) Newest publication
             * 3) Oldest publications
             */
            using (var reader = dataIO.GetConceptPublications(base.RDFTriple))
            {
                List <string> htmlList     = new List <string>();
                StringBuilder html         = null;
                int           resultsetCnt = 0;
                do
                {
                    resultsetCnt++;
                    html = new StringBuilder();
                    while (reader.Read())
                    {
                        if (resultsetCnt == 3)                                                                                  // cited
                        {
                            html.AppendFormat(@"
								<li>
								<div>{0}</div>
								<div class='viewIn'>View in: <a href='//www.ncbi.nlm.nih.gov/pubmed/{1}' target='_new'>PubMed</a></div>	
								<div>Cited: {2}</div>						
								</li>
							"                            ,
                                              reader["reference"].ToString(),
                                              reader["pmid"].ToString(),
                                              reader["n"].ToString()
                                              );
                        }
                        else if (resultsetCnt == 1 || resultsetCnt == 2)                                // newest and oldest
                        {
                            html.AppendFormat(@"
								<li>
								<div>{0}</div>
								<div class='viewIn'>View in: <a href='//www.ncbi.nlm.nih.gov/pubmed/{1}' target='_new'>PubMed</a></div>							
								</li>
							"                            ,
                                              reader["reference"].ToString(),
                                              reader["pmid"].ToString()
                                              );
                        }
                    }
                    htmlList.Add(html.ToString());
                } while(reader.NextResult());                 // Next resultset

                reader.Close();

                if (htmlList.Count == 1)
                {
                    ShowOtherPub = false;
                    newest.Text  = htmlList[0];
                }
                else
                {
                    // For Catalyst site only until speed issue is resolved
                    ShowOtherPub = true;
                    newest.Text  = htmlList[0];
                    oldest.Text  = htmlList[1];
                    cited.Text   = htmlList[2];
                }
            }
        }
示例#2
0
        private void DrawProfilesModule()
        {
            DateTime d = DateTime.Now;

            Profiles.Profile.Utilities.DataIO data = new Profiles.Profile.Utilities.DataIO();
            List <Publication> publication         = new List <Publication>();

            Utilities.DataIO.ClassType    type         = Utilities.DataIO.ClassType.Unknown;
            Framework.Utilities.Namespace xmlnamespace = new Profiles.Framework.Utilities.Namespace();
            XmlNamespaceManager           namespaces   = xmlnamespace.LoadNamespaces(BaseData);

            if (BaseData.SelectSingleNode("rdf:RDF/rdf:Description[1]/rdf:type[@rdf:resource='http://xmlns.com/foaf/0.1/Person']", namespaces) != null)
            {
                type = Utilities.DataIO.ClassType.Person;
            }
            if (BaseData.SelectSingleNode("rdf:RDF/rdf:Description[1]/rdf:type[@rdf:resource='http://xmlns.com/foaf/0.1/Group']", namespaces) != null)
            {
                type = Utilities.DataIO.ClassType.Grant;
            }

            using (SqlDataReader reader = data.GetPublications(base.RDFTriple, type))
            {
                while (reader.Read())
                {
                    publication.Add(new Publication(reader["bibo_pmid"].ToString(), reader["vivo_pmcid"].ToString(), reader["prns_informationResourceReference"].ToString(), reader["vivo_webpage"].ToString()));
                }

                rpPublication.DataSource = publication;
                rpPublication.DataBind();
            }

            // Get timeline bar chart
            string storedproc = "[Profile.Module].[NetworkAuthorshipTimeline.Person.GetData]";

            if (type == Utilities.DataIO.ClassType.Grant)
            {
                storedproc = "[Profile.Module].[NetworkAuthorshipTimeline.Group.GetData]";
            }
            using (SqlDataReader reader = data.GetGoogleTimeline(base.RDFTriple, storedproc))
            {
                while (reader.Read())
                {
                    timelineBar.Src       = reader["gc"].ToString();
                    timelineBar.Alt       = reader["alt"].ToString();
                    litTimelineTable.Text = reader["asText"].ToString();
                }
                reader.Close();
            }

            if (timelineBar.Src == "")
            {
                timelineBar.Visible = false;
            }


            // Login link
            loginLiteral.Text = String.Format("<a href='{0}'>login</a>", Root.Domain + "/login/default.aspx?pin=send&method=login&edit=true");

            if (type == Utilities.DataIO.ClassType.Grant)
            {
                divPubHeaderText.Visible = false;
            }

            Framework.Utilities.DebugLogging.Log("PUBLICATION MODULE end Milliseconds:" + (DateTime.Now - d).TotalSeconds);
        }