public LocalNetwork GetProfileNetworkForBrowser(int profileId)
        {
            //Debug logging
            Connects.Profiles.Service.ServiceImplementation.DebugLogging.Log("Line1: profileid:" + profileId);

               DataIO nb = new DataIO();

            try
            {

                    Type type = typeof(LocalNetwork);

                    string responseXML;

                    responseXML = nb.GetProfileNetworkForBrowser(profileId).OuterXml;

                    LocalNetwork ln = XmlUtilities.DeserializeObject(responseXML, type) as LocalNetwork;

                    return ln;

            }
            catch (Exception ex)
            {
                DebugLogging.Log("ERROR: " + ex.Message + " " + ex.StackTrace + " ,,,, INNER EXCEPTION: " + ex.InnerException.Message + ex.InnerException.StackTrace);
                throw ex;
            }
        }
 // UCSF
 public PersonList ProfileDetails(string internalUsername, string FNO)
 {
     DataIO data = new DataIO();
     if (internalUsername != null && internalUsername.Trim().Length > 0)
     {
         return new ProfileServiceAdapter().GetPersonFromPersonId(data.GetPersonIdFromInternalUsername(internalUsername));
     }
     else
     {
         return new ProfileServiceAdapter().GetPersonFromPersonId(data.GetPersonIdFromFNO(FNO));
     }
 }
 // UCSF
 public PublicationDate GetPubDate(string MPID, string PMID, string PubID)
 {
     DataIO data = new DataIO();
     String pd = "" ;
     if (PMID != null && PMID.Trim().Length > 0)
     {
         pd = data.ProcessDateSQL("select PubDate from [Profile.Data].[Publication.PubMed.General] where PMID = '" + PMID + "';");
     }
     else if (MPID != null && MPID.Trim().Length > 0)
     {
         pd = data.ProcessDateSQL("select publicationdt from [Profile.Data].[Publication.MyPub.General] where mpid = '" + MPID + "';");
     }
     else if (PubID != null && PubID.Trim().Length > 0)
     {
         pd = data.ProcessDateSQL("select isnull(m.publicationdt, p.PubDate) from [Profile.Data].[Publication.Person.Include] i left outer join [Profile.Data].[Publication.MyPub.General] m on i.mpid = m.mpid left outer join " +
                    "[Profile.Data].[Publication.PubMed.General] p on i.pmid = p.pmid where pubid = '" + PubID + "';");
     }
     return new PublicationDate { pubDate = pd };
 }
 private string GetJSONProfilesFromFNO(string FNO, bool showPublications, bool mobile)
 {
     int personId = new Connects.Profiles.Service.ServiceImplementation.DataIO().GetPersonIdFromFNO(FNO);
     return GetJSONProfiles(personId, showPublications, mobile);
 }
 private string GetJSONProfilesFromEmployeeID(string employeeID, bool showPublications, bool mobile)
 {
     int personId = new Connects.Profiles.Service.ServiceImplementation.DataIO().GetPersonIdFromInternalUsername(employeeID);
     return GetJSONProfiles(personId, showPublications, mobile);
 }
 private string GetXMLProfilesFromFNO(string FNO)
 {
     // lookup personid from FNO
     int personId = new Connects.Profiles.Service.ServiceImplementation.DataIO().GetPersonIdFromFNO(FNO);
     return GetXMLProfiles(personId);
 }
 private string GetXMLProfilesFromEmployeeID(string employeeID)
 {
     // lookup personid
     int personId = new Connects.Profiles.Service.ServiceImplementation.DataIO().GetPersonIdFromInternalUsername(employeeID);
     return GetXMLProfiles(personId);
 }
        private string ConvertToRDFRequest(string req, string version)
        {
            string searchstring = string.Empty;
            string exactphrase = string.Empty;
            string fname = string.Empty;
            string lname = string.Empty;

            string ecomid = string.Empty;
            string personid = string.Empty;
            string harvardid = string.Empty;

            string institution = string.Empty;
            string institutionallexcept = string.Empty;
            string department = string.Empty;
            string departmentallexcept = string.Empty;
            string facultyrank = string.Empty;

            string division = string.Empty;
            string divisionallexcept = string.Empty;
            string classuri = "http://xmlns.com/foaf/0.1/Person";
            int limit = 100;
            int offset = 0;
            string sortby = string.Empty;
            string sortdirection = string.Empty;
            string otherfilters = string.Empty;

            XmlDocument newrequest = new XmlDocument();

            XmlDocument request = new XmlDocument();
            req = req.Replace("\n", "").Replace("\r", "");
            req = req.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", "");
            req = req.Replace("xmlns=\"http://connects.profiles.schema/profiles/query\"", "");
            request.LoadXml(req);

            if (request.SelectSingleNode("//Profiles/QueryDefinition/PersonID") != null)
                personid = request.SelectSingleNode("//Profiles/QueryDefinition/PersonID").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/InternalIDList/InternalID[@Name = 'EcommonsUsername']") != null)
                ecomid = request.SelectSingleNode("//Profiles/QueryDefinition/InternalIDList/InternalID[@Name = 'EcommonsUsername']").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/InternalIDList/InternalID[@Name = 'HarvardID']") != null)
                harvardid = request.SelectSingleNode("//Profiles/QueryDefinition/InternalIDList/InternalID[@Name = 'HarvardID']").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/Keywords/KeywordString") != null)
                searchstring = request.SelectSingleNode("//Profiles/QueryDefinition/Keywords/KeywordString").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/Keywords/KeywordString/@MatchType") != null)
                exactphrase = request.SelectSingleNode("//Profiles/QueryDefinition/Keywords/KeywordString/@MatchType").Value;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/Name/FirstName") != null)
                fname = request.SelectSingleNode("//Profiles/QueryDefinition/Name/FirstName").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/Name/LastName") != null)
                lname = request.SelectSingleNode("//Profiles/QueryDefinition/Name/LastName").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DepartmentName") != null)
                department = request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DepartmentName").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DepartmentName/@Exclude") != null)
                departmentallexcept = request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DepartmentName/@Exclude").Value;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DivisionName") != null)
                division = request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DivisionName").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DivisionName/@Exclude") != null)
                divisionallexcept = request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/DivisionName/@Exclude").Value;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/InstitutionName") != null)
                institution = request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/InstitutionName").InnerText;

            if (request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/InstitutionName/@Exclude") != null)
                institutionallexcept = request.SelectSingleNode("//Profiles/QueryDefinition/AffiliationList/Affiliation/InstitutionName/@Exclude").Value;

            if (request.SelectSingleNode("//Profiles/OutputOptions/@StartRecord") != null)
                offset = Convert.ToInt32(request.SelectSingleNode("//Profiles/OutputOptions/@StartRecord").Value);

            if (request.SelectSingleNode("//Profiles/OutputOptions/@MaxRecords") != null)
                limit = Convert.ToInt32(request.SelectSingleNode("//Profiles/OutputOptions/@MaxRecords").Value);

            if (offset > 0)
                offset--;

            if (request.SelectSingleNode("//Profiles/OutputOptions/@SortType") != null)
                sortby = request.SelectSingleNode("//Profiles/OutputOptions/@SortType").Value;

            foreach (XmlNode others in request.SelectNodes("Profiles/QueryDefinition/PersonFilterList/PersonFilter"))
            {
                otherfilters += others.InnerText + ", ";
            }

            if (otherfilters != string.Empty)
                otherfilters = otherfilters.Substring(0, otherfilters.Length - 3);

            DataIO data = new DataIO();

            newrequest = data.SearchRequest(searchstring, exactphrase, fname, lname, institution, institutionallexcept, department, departmentallexcept,
                 division, divisionallexcept, classuri, limit.ToString(), offset.ToString(), sortby, sortdirection, otherfilters, personid, ecomid, harvardid);

            return newrequest.InnerXml;
        }
        public Connects.Profiles.Service.DataContracts.PersonList ProfileSearch(Connects.Profiles.Service.DataContracts.Profiles qd, bool isSecure)
        {
            Connects.Profiles.Service.DataContracts.PersonList pl = null;
            string req = string.Empty;
            string responseXML = string.Empty;

            try
            {
                DataIO ps = new DataIO();
                XmlDocument searchrequest = new XmlDocument();
                Utility.Namespace namespacemgr = new Connects.Profiles.Utility.Namespace();

                Connects.Profiles.Service.DataContracts.Profiles p = new Connects.Profiles.Service.DataContracts.Profiles();

                req = Connects.Profiles.Utility.XmlUtilities.SerializeToString(qd);

                DebugLogging.Log("+++++++++ REQUEST=" + req);

                Type type = typeof(Connects.Profiles.Service.DataContracts.PersonList);

                searchrequest.LoadXml(this.ConvertToRDFRequest(req, qd.Version.ToString()));

                if (qd.QueryDefinition.PersonID != null && qd.Version != 2)
                {
                    qd.QueryDefinition.PersonID = ps.GetPersonID(qd.QueryDefinition.PersonID).ToString();
                }

                if (qd.QueryDefinition.PersonID != null)
                {
                    responseXML = ps.Search(qd.QueryDefinition.PersonID, isSecure).OuterXml;
                }
                else
                {
                    responseXML = ps.Search(searchrequest, isSecure).OuterXml;
                }

                string queryid = string.Empty;
                queryid = qd.QueryDefinition.QueryID;

                if (responseXML == string.Empty)
                {
                    if (queryid == null)
                        queryid = Guid.NewGuid().ToString();

                    responseXML = "<PersonList Complete=\"true\" ThisCount=\"0\" TotalCount=\"0\" QueryID=\"" + queryid + "\" xmlns=\"http://connects.profiles.schema/profiles/personlist\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" />";

                }
                else
                {

                    string version = string.Empty;
                    bool individual = false;

                    version = qd.Version.ToString();

                    if (qd.QueryDefinition.PersonID != null || qd.QueryDefinition.InternalIDList != null)
                        individual = true;

                    responseXML = ps.ConvertV2ToBetaSearch(responseXML, queryid, version, individual);
                }

                DebugLogging.Log("+++++++++ DONE WITH Convert V2 to Beta Search");
                pl = Connects.Profiles.Utility.XmlUtilities.DeserializeObject(responseXML, type) as Connects.Profiles.Service.DataContracts.PersonList;
                DebugLogging.Log("+++++++++ Returned + a total count of = " + pl.TotalCount);

            }
            catch (Exception ex)
            {
                DebugLogging.Log(req + " " + responseXML);
                DebugLogging.Log("ERROR==> " + ex.Message + " STACK:" + ex.StackTrace + " SOURCE:" + ex.Source);
            }

            return pl;
        }
예제 #10
0
        /// <summary>
        ///     Public method used to create an instance of the custom Profiles session object.
        /// </summary>
        public string SessionCreate()
        {
            DataIO dataio = new DataIO();

            Session session = new Session();
            string hostname = System.Net.Dns.GetHostName();

            string ipaddress = string.Empty;
            try
            {
                ipaddress = System.Net.Dns.GetHostAddresses(hostname).GetValue(1).ToString();
            }
            catch (Exception ex)
            {
                DebugLogging.Log(ex.Message + " ++ " + ex.StackTrace);
                ipaddress = "";
            }

            session.RequestIP = ipaddress;
            session.UserAgent = "PROFILES RNS";

            dataio.SessionCreate(ref session);

            //Store the object in the current session of the user.
            return session.SessionID;
        }
        public Connects.Profiles.Service.DataContracts.PersonList ProfileSearch(Connects.Profiles.Service.DataContracts.Profiles qd, bool isSecure)
        {
            Connects.Profiles.Service.DataContracts.PersonList pl = null;
            try
            {
                DataIO ps = new DataIO();
                XmlDocument searchrequest = new XmlDocument();
                Utility.Namespace namespacemgr = new Connects.Profiles.Utility.Namespace();
                XmlNamespaceManager namespaces;

                string responseXML;

                Connects.Profiles.Service.DataContracts.Profiles p = new Connects.Profiles.Service.DataContracts.Profiles();

                string req = Connects.Profiles.Utility.XmlUtilities.SerializeToString(qd);

                Type type = typeof(Connects.Profiles.Service.DataContracts.PersonList);

                searchrequest.LoadXml(this.ConvertToRDFRequest(req));

                namespaces = namespacemgr.LoadNamespaces(searchrequest);

                if (qd.QueryDefinition.PersonID!=null)
                {
                    responseXML = ps.Search(qd.QueryDefinition.PersonID).OuterXml;
                }
                else
                {
                    responseXML = ps.Search(searchrequest,isSecure).OuterXml;
                }

                string queryid = string.Empty;
                string version = string.Empty;
                bool individual = false;

                queryid = qd.QueryDefinition.QueryID;
                version = qd.Version.ToString();

                if (qd.QueryDefinition.PersonID != null)
                    individual = true;

                responseXML = ps.ConvertV2ToBetaSearch(responseXML, queryid, version, individual);

                pl = Connects.Profiles.Utility.XmlUtilities.DeserializeObject(responseXML, type) as Connects.Profiles.Service.DataContracts.PersonList;

            }
            catch (Exception ex)
            {
                DebugLogging.Log("ERROR==> " + ex.Message + " STACK:" + ex.StackTrace + " SOURCE:" + ex.Source);
            }

            return pl;
        }