public void Page_Load(object sender, EventArgs e) { UserHistory uh = new UserHistory(); masterpage = (Framework.Template)base.Master; this.Master = masterpage; this.LoadAssets(); this.LoadPresentationXML(); XmlNode x = this.PresentationXML.SelectSingleNode("Presentation[1]/ExpandRDFList[1]"); if (x != null) base.RDFTriple.ExpandRDFList = x.OuterXml; if (base.RDFTriple.Subject != 0 && base.RDFTriple.Predicate != 0 && base.RDFTriple.Object == 0) base.RDFTriple.Limit = "1"; base.LoadRDFData(); Framework.Utilities.DebugLogging.Log("Page_Load Profile 1: " + DateTime.Now.ToLongTimeString()); masterpage.Tab = base.Tab; masterpage.RDFData = base.RDFData; masterpage.RDFNamespaces = base.RDFNamespaces; masterpage.PresentationXML = this.PresentationXML; Framework.Utilities.DebugLogging.Log("Page_Load Profile 2: " + DateTime.Now.ToLongTimeString()); // UCSF added schema.org info // Only do this for a person only version of this page ! XmlNode presentationClass = PresentationXML.SelectSingleNode("//Presentation/@PresentationClass", base.RDFNamespaces); if (presentationClass != null && "profile".Equals(presentationClass.InnerText.ToLower()) && this.RDFData.SelectSingleNode("rdf:RDF[1]/rdf:Description[1]/foaf:firstName", base.RDFNamespaces) != null && this.RDFData.SelectSingleNode("rdf:RDF[1]/rdf:Description[1]/foaf:lastName", base.RDFNamespaces) != null) { ((HtmlGenericControl)masterpage.FindControl("divProfilesContentMain")).Attributes.Add("itemscope", "itemscope"); ((HtmlGenericControl)masterpage.FindControl("divProfilesContentMain")).Attributes.Add("itemtype", "http://schema.org/Person"); HtmlMeta Description = new HtmlMeta(); Description.Name = "Description"; string name = this.RDFData.SelectSingleNode("rdf:RDF[1]/rdf:Description[1]/foaf:firstName", base.RDFNamespaces).InnerText + " " + this.RDFData.SelectSingleNode("rdf:RDF[1]/rdf:Description[1]/foaf:lastName", base.RDFNamespaces).InnerText; Description.Content = name + "'s profile, publications, research topics, and co-authors"; Page.Header.Controls.Add(Description); HtmlLink Canonical = new HtmlLink(); Canonical.Href = Request.Url.AbsoluteUri.IndexOf('?') == -1 ? Request.Url.AbsoluteUri.ToLower() : Request.Url.AbsoluteUri.ToLower().Substring(0, Request.Url.AbsoluteUri.IndexOf('?')); Canonical.Attributes["rel"] = "canonical"; Page.Header.Controls.Add(Canonical); } else { // Tell the bots that this is slow moving data, add an exires at some random date up to 30 days out DateTime expires = DateTime.Now.Add( TimeSpan.FromDays( random.NextDouble() * 29 + 1 )); Response.AddHeader("Expires", expires.ToUniversalTime().ToString("r")); } }
protected void Page_Load(object sender, EventArgs e) { if (this.RDFData != null) { uh = new UserHistory(); if (this.RDFData.InnerXml != "") RecordHistory(); DrawProfilesModule(); } }
private void DrawProfilesModule() { UserHistory uh = new UserHistory(); List<HistoryItem> hi = uh.GetItems(); if (hi==null) Response.Redirect(Root.Domain + "/search", true); rptHistory.DataSource = hi; rptHistory.DataBind(); }
private void DrawProfilesModule() { Int64 subject = 0; if (Request.QueryString["subject"] != null) subject = Convert.ToInt64(Request.QueryString["subject"]); Utilities.DataIO data = new Profiles.Framework.Utilities.DataIO(); menulist.Append("<ul>"); menulist.Append("<li><a href='" + Root.Domain + "/search'>Find People</a></li>"); menulist.Append("<li><a href='" + Root.Domain + "/search/all'>Find Everything</a></li>"); //-50 is the profiles Admin if (data.GetSessionSecurityGroup() == -50) menulist.Append("<li><a href='" + Root.Domain + "/SPARQL/default.aspx'>SPARQL Query</a></li>"); menulist.Append("<li><a href='" + Root.Domain + "/about/default.aspx'>About This Site</a></li>"); if (sm.Session().NodeID > 0) menulist.Append("<li><a href='" + sm.Session().PersonURI + "'>View My Profile</a></li>"); menulist.Append("<li><a href='" + Root.Domain + "/login/default.aspx?method=login&edit=true'>Edit My Profile</a></li>"); if (base.MasterPage.CanEdit) { menulist.Append("<li><a href='" + Root.Domain + "/edit/" + subject.ToString() + "'>Edit This Profile</a></li>"); } if (sm.Session().UserID > 0) menulist.Append("<li><a href='" + Root.Domain + "/proxy/default.aspx?subject=" + sm.Session().NodeID.ToString() + "'>Manage Proxies</a></li>"); if (base.BaseData.SelectSingleNode(".").OuterXml != string.Empty && !Root.AbsolutePath.ToLower().Contains("/search")) { if (base.BaseData.SelectSingleNode("//rdf:RDF/rdf:Description/@rdf:about", base.Namespaces) != null && !Root.AbsolutePath.ToLower().Contains("proxy")) { string uri = this.BaseData.SelectSingleNode("//rdf:RDF/rdf:Description/@rdf:about", base.Namespaces).Value; //IF the URI is in our system then we build the link. If not then we do not build the link for the data. if (uri.Contains(Root.Domain)) { string file = string.Empty; string spostring = string.Empty; string[] spoarray; spostring = uri.ToLower().Replace(Root.Domain.ToLower() + "/profile/", ""); spoarray = spostring.Split('/'); for (int i = 0; i < spoarray.Length; i++) { file = file + spoarray[i] + "_"; } file = file.Substring(0, file.Length - 1); menulist.Append("<li><a href=\"" + uri + "/" + file + ".rdf\" target=\"_blank\">" + "Export RDF" + "</a> <a style='border: none;' href='" + Root.Domain + "/about/default.aspx?tab=data'><img style='border-style: none' src='" + Root.Domain + "/Framework/Images/info.png' border='0'></a></li>"); if (base.MasterPage != null) { System.Web.UI.HtmlControls.HtmlContainerControl Head1; Head1 = (System.Web.UI.HtmlControls.HtmlContainerControl)base.MasterPage.FindControl("Head1"); //If a masterpage exists, you need to to create an ASP.Net Literal object and pass it to the masterpage so it can process the link in the Head block. string link = "<link rel=\"alternate\" type=\"application/rdf+xml\" href=\"" + uri + "/" + file + ".rdf\" />"; Head1.Controls.Add(new LiteralControl(link)); } } } } if (sm.Session().UserID == 0) { if (!Root.AbsolutePath.Contains("login")) { menulist.Append("<li><a href='" + Root.Domain + "/login/default.aspx?pin=send&method=login&redirectto=" + Root.Domain + Root.AbsolutePath + "'>Login to Profiles</a></li>"); } } else { menulist.Append("<li><a href='" + Root.Domain + "/login/default.aspx?method=logout&redirectto=" + Root.Domain + Root.AbsolutePath + "'>Logout</a></li>"); } menulist.Append("</ul>"); // hide active networks DIV if not logged in if (sm.Session().UserID > 0) { ActiveNetworkRelationshipTypes.Visible = true; } else { ActiveNetworkRelationshipTypes.Visible = false; } UserHistory uh = new UserHistory(); ProfileHistory.RDFData = base.BaseData; ProfileHistory.PresentationXML = base.MasterPage.PresentationXML; ProfileHistory.Namespaces = base.Namespaces; if (uh.GetItems() != null) { ProfileHistory.Visible = true; } else { ProfileHistory.Visible = false; } panelMenu.InnerHtml = menulist.ToString(); }
private void RecordHistory() { try { if (this.PresentationXML != null) { if (this.PresentationXML.SelectSingleNode("Presentation/@PresentationClass").Value.ToLower() == "profile") { UserHistory uh = new UserHistory(); HistoryItem hi; List<string> types = new List<string>(); foreach (XmlNode x in this.RDFData.SelectNodes("rdf:RDF/rdf:Description[1]/rdf:type/@rdf:resource", this.Namespaces)) { if (this.RDFData.SelectSingleNode("rdf:RDF/rdf:Description[@rdf:about='" + x.Value + "']/rdfs:label", this.Namespaces) != null) { types.Add(this.RDFData.SelectSingleNode("rdf:RDF/rdf:Description[@rdf:about='" + x.Value + "']/rdfs:label", this.Namespaces).InnerText); } else { string[] s = x.Value.Split('/'); types.Add(s[s.Length - 1]); } } if (this.RDFData.SelectSingleNode("rdf:RDF/rdf:Description/rdfs:label", this.Namespaces) != null) { hi = new HistoryItem(this.RDFData.SelectSingleNode("rdf:RDF/rdf:Description/rdfs:label", this.Namespaces).InnerText, RDFData.SelectSingleNode("rdf:RDF/rdf:Description/@rdf:about", this.Namespaces).Value , types); uh.LoadItem(hi); } } } } catch (Exception ex) { Framework.Utilities.DebugLogging.Log(ex.Message + " " + ex.InnerException.Message); } }
private void DrawProfilesModule() { UserHistory uh = new UserHistory(); List<string> types; types = new List<string>(); hi = uh.GetItems(); if (hi == null) Response.Redirect(Root.Domain + "/search",true); foreach (HistoryItem item in hi) { string hiremove; foreach (string s in item.Types) { hiremove = types.Find(delegate(string hiremoveitem) { return hiremoveitem == s; }); if (hiremove.IsNullOrEmpty()) types.Add(s); } } rptHistory.DataSource = types; rptHistory.DataBind(); }