コード例 #1
0
        public PersonList GetPersonFromPersonId(int personId)
        {
            QueryDefinition qd = new QueryDefinition();

            Connects.Profiles.Service.DataContracts.Profiles profiles = new Connects.Profiles.Service.DataContracts.Profiles();
            profiles.Version                  = 2;
            profiles.QueryDefinition          = qd;
            profiles.QueryDefinition.PersonID = personId.ToString();

            OutputOptions oo = new OutputOptions();

            oo.SortType    = OutputOptionsSortType.QueryRelevance;
            oo.StartRecord = "0";

            OutputFilterList ofl = new OutputFilterList();
            OutputFilter     of  = new OutputFilter();

            of.Summary = false;
            of.Text    = "CoAuthorList";

            ofl.OutputFilter = new List <OutputFilter>();
            ofl.OutputFilter.Add(of);

            oo.OutputFilterList    = ofl;
            profiles.OutputOptions = oo;

            bool isSecure = System.Convert.ToBoolean(ConfigUtil.GetConfigItem("IsSecure"));

            profiles.Version = 2;

            return(ProfileSearch(profiles, isSecure));
        }
コード例 #2
0
        public int GetProfileSearchTotalRowCount(Connects.Profiles.Service.DataContracts.Profiles pq, out string queryID, out int totalCount)
        {
            string qId           = pq.QueryDefinition.QueryID;
            int    primeCount    = 0;
            int    returnedCount = new ProfileServiceAdapter().GetProfileSearchTotalRowCount(qId, primeCount);

            totalCount = returnedCount;

            queryID = qId;

            return(returnedCount);
        }
コード例 #3
0
        public List <Person> ProfileSearchPersonBinding(Connects.Profiles.Service.DataContracts.Profiles pq, out string queryID, out int totalCount, int startRowIndex, int maximumRows)
        {
            bool isSecure = System.Convert.ToBoolean(ConfigUtil.GetConfigItem("IsSecure"));

            // Modify the search for the start row and max rows
            //((Connects.Profiles.Service.DataContracts.Profiles)pq).OutputOptions.StartRecord = startRowIndex.ToString();

            PersonList personList = new ProfileServiceAdapter().ProfileSearch(pq, isSecure);

            queryID = personList.QueryID;

            totalCount = Convert.ToInt32(personList.TotalCount);
            //complete = personList.Complete;

            int fooCount = new ProfileServiceAdapter().GetProfileSearchTotalRowCount(queryID, totalCount);

            return(personList.Person);
        }
コード例 #4
0
        public int GetPersonIdFromInternalId(string internalTag, string internalValue)
        {
            QueryDefinition qd = new QueryDefinition();

            Connects.Profiles.Service.DataContracts.Profiles profiles = new Connects.Profiles.Service.DataContracts.Profiles();
            int personId = 0;

            InternalIDList    internalIdList = new InternalIDList();
            List <InternalID> intIdList      = new List <InternalID>();
            InternalID        intId          = new InternalID();

            intId.Name = internalTag;
            intId.Text = internalValue;

            intIdList.Add(intId);

            internalIdList.InternalID = intIdList;

            profiles.QueryDefinition = qd;
            profiles.QueryDefinition.InternalIDList = internalIdList;

            OutputOptions oo = new OutputOptions();

            oo.SortType    = OutputOptionsSortType.QueryRelevance;
            oo.StartRecord = "0";

            profiles.OutputOptions = oo;
            bool isSecure = System.Convert.ToBoolean(ConfigUtil.GetConfigItem("IsSecure"));

            profiles.Version = 2;
            PersonList resp = ProfileSearch(profiles, isSecure);

            personId = Convert.ToInt32(resp.Person[0].PersonID);

            return(personId);
        }
コード例 #5
0
        /// <summary>
        /// The ProfileSearch action provides an XML-based query mechanism for Profiles data.  ProfileSearch takes
        /// an XML request using the Profiles XML schema and returns XML data formatted according to the PersonList XML schema.
        /// </summary>
        /// <param name="Profiles">An XML request using the Profiles XML schema</param>
        /// <returns>Profiles data formatted according to the PersonList XML schema</returns>
        public PersonList ProfileSearch(Connects.Profiles.Service.DataContracts.Profiles pq)
        {
            bool isSecure = System.Convert.ToBoolean(ConfigUtil.GetConfigItem("IsSecure"));

            return(new ProfileServiceAdapter().ProfileSearch(pq, isSecure));
        }
コード例 #6
0
 public PublicationMatchDetailList GetProfilePublicationMatchSummary(Connects.Profiles.Service.DataContracts.Profiles qd)
 {
     return(new ProfileServiceAdapter().GetProfilePublicationMatchSummary(qd, false));
 }
コード例 #7
0
        public PersonList ProfileSearch(Connects.Profiles.Service.DataContracts.Profiles qd, bool isSecure)
        {
            PersonList pl = null;

            try
            {
                ProfileSearchBL ps = new ProfileSearchBL();
                Connects.Profiles.Service.DataContracts.Profiles p = new Connects.Profiles.Service.DataContracts.Profiles();

                //qd.OutputOptions.StartRecord = (Convert.ToInt32(qd.OutputOptions.StartRecord) + 1).ToString();

                string req = XmlUtilities.SerializeToString(qd);


                req = req.Replace("Version=\"0\"", "Version=\"1\"");


                XmlUtilities.logit("Line 1: ProfileServiceAdapter.ProfileSearch(" + req + "," + isSecure.ToString() + ")");

                // If we are enforcing XSD
                if (Convert.ToBoolean(ConfigUtil.GetConfigItem("EnforceQuerySchema")) == true)
                {
                    XmlUtilities.logit("Line 2: Enforcing XSD");
                    if (ValidateSearchRequest(req) == false)
                    {
                        XmlUtilities.logit("Line 3: Failed XSD");
                        throw new Exception("Search request failed XML schema validation");
                    }
                    XmlUtilities.logit("Line 3: Passed XSD");
                }
                else
                {
                    XmlUtilities.logit("Line 2 and 3: No XSD Required");
                }

                using (XmlReaderScope scope = ps.ProfileSearch(req, isSecure))
                {
                    Type   type = typeof(PersonList);
                    string responseXML;

                    scope.Reader.Read();

                    responseXML = scope.Reader.ReadOuterXml();
                    XmlUtilities.logit("Line 4: Response data " + responseXML);

                    // If we are enforcing XSD
                    if (Convert.ToBoolean(ConfigUtil.GetConfigItem("EnforceResponseSchema")) == true)
                    {
                        XmlUtilities.logit("Line 5: Enforcing response XSD");

                        if (ValidateSearchResponse(responseXML) == false)
                        {
                            XmlUtilities.logit("Line 6: Failed response xsd");
                            throw new Exception("Search response failed XML schema validation");
                        }
                        XmlUtilities.logit("Line 6: Passed response xsd");
                    }
                    else
                    {
                        XmlUtilities.logit("Line 5 and 6: No XSD Required");
                    }


                    pl = XmlUtilities.DeserializeObject(responseXML, type) as PersonList;

                    XmlUtilities.logit("Line 7: Returned to requestor");
                }
            }
            catch (Exception ex)
            {
                XmlUtilities.logit("ERROR==> " + ex.Message + " STACK:" + ex.StackTrace + " SOURCE:" + ex.Source);
            }


            return(pl);
        }
コード例 #8
0
        public PublicationMatchDetailList GetProfilePublicationMatchSummary(Connects.Profiles.Service.DataContracts.Profiles qd, bool isSecure)
        {
            qd.Version = 2;

            PersonList pl = ProfileSearch(qd, isSecure);
            PublicationMatchDetailList pubMatch                  = new PublicationMatchDetailList();
            HashSet <string>           searchPhraseDistinct      = new HashSet <string>();
            HashSet <string>           publicationPhraseDistinct = new HashSet <string>();

            if (pl != null)
            {
                foreach (Publication pub in pl.Person[0].PublicationList)
                {
                    foreach (PublicationMatchDetail pubMatchDetail in pub.PublicationMatchDetailList)
                    {
                        PublicationMatchDetail pubMatchDetailStripped = new PublicationMatchDetail();
                        pubMatchDetailStripped.SearchPhrase = pubMatchDetail.SearchPhrase;

                        if (!searchPhraseDistinct.Contains(pubMatchDetail.SearchPhrase))
                        {
                            pubMatch.Add(pubMatchDetailStripped);

                            searchPhraseDistinct.Add(pubMatchDetail.SearchPhrase);
                        }

                        foreach (PublicationPhraseDetail pubPhraseDetail in pubMatchDetail.PublicationPhraseDetailList)
                        {
                            //PublicationPhraseDetail pubPhraseDetailStripped = new PublicationPhraseDetail();
                            //pubPhraseDetailStripped.PublicationPhrase = pubPhraseDetail.PublicationPhrase;

                            //PublicationMatchDetail pmd = pubMatch.Find(delegate(PublicationMatchDetail t) { return t.SearchPhrase == pubMatchDetail.SearchPhrase; });

                            //// Handle the structure
                            //if (!publicationPhraseDistinct.Contains(pubPhraseDetail.PublicationPhrase))
                            //{
                            //    if (pmd.PublicationPhraseDetailList == null)
                            //        pmd.PublicationPhraseDetailList = new PublicationPhraseDetailList();

                            //    pmd.PublicationPhraseDetailList.Add(pubPhraseDetailStripped);

                            //    publicationPhraseDistinct.Add(pubPhraseDetail.PublicationPhrase);
                            //}

                            //// Get the Phrase Measurements
                            //PublicationPhraseDetail ppd = pmd.PublicationPhraseDetailList.Find(delegate(PublicationPhraseDetail t) { return t.PublicationPhrase == pubPhraseDetail.PublicationPhrase; });
                            //ppd.PhraseMeasurements = pubPhraseDetail.PhraseMeasurements;

                            //if (ppd.PublicationList == null)
                            //    ppd.PublicationList = new PublicationList();
                            //ppd.PublicationList.Add(pub);
                            PublicationMatchDetail pmd = pubMatch.Find(delegate(PublicationMatchDetail t) { return(t.SearchPhrase == pubMatchDetail.SearchPhrase); });

                            if (pmd.PublicationPhraseDetailList == null)
                            {
                                pmd.PublicationPhraseDetailList = new PublicationPhraseDetailList();
                            }

                            pubPhraseDetail.Publication = pub;
                            pmd.PublicationPhraseDetailList.Add(pubPhraseDetail);
                        }
                    }
                }
            }

            // IEnumerable<PublicationMatchDetail> noduplicates = pubMatch.Distinct();

            return(pubMatch);
        }
コード例 #9
0
        public PersonList GetDepartmentPeopleFromPersonId(int personId, int count)
        {
            //thisPerson is the current profile being viewed by a user or process.
            PersonList thisPerson;
            PersonList returnPeople;

            thisPerson = GetPersonFromPersonId(personId);

            QueryDefinition qd = new QueryDefinition();

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

            if (Convert.ToInt32(thisPerson.TotalCount) > 0)
            {
                if (thisPerson.Person[0].AffiliationList != null)
                {
                    if (thisPerson.Person[0].AffiliationList.Affiliation.Count > 0)
                    {
                        Affiliation     affiliation = new Affiliation();
                        AffiliationList affList     = new AffiliationList();
                        affiliation.DepartmentName  = new AffiliationDepartmentName();
                        affiliation.InstitutionName = new AffiliationInstitutionName();

                        foreach (AffiliationPerson aff in thisPerson.Person[0].AffiliationList.Affiliation)
                        {
                            if (aff.Primary)
                            {
                                affiliation.DepartmentName.Text  = aff.DepartmentName;
                                affiliation.InstitutionName.Text = aff.InstitutionName;
                            }
                        }
                        affList.Affiliation = new List <Affiliation>();
                        affList.Affiliation.Add(affiliation);

                        qd.AffiliationList = affList;

                        profiles.QueryDefinition = qd;

                        OutputOptions oo = new OutputOptions();
                        oo.SortType    = OutputOptionsSortType.QueryRelevance;
                        oo.StartRecord = "0";
                        oo.MaxRecords  = count.ToString();

                        profiles.OutputOptions = oo;


                        bool isSecure = System.Convert.ToBoolean(ConfigUtil.GetConfigItem("IsSecure"));
                        profiles.Version = 2;
                        returnPeople     = ProfileSearch(profiles, isSecure);

                        //Filter out the current profile you are viewing.
                        if (Convert.ToInt32(thisPerson.ThisCount) > 0)
                        {
                            returnPeople.Person.RemoveAll(x => x.PersonID == thisPerson.Person[0].PersonID);
                        }

                        return(returnPeople);
                    }
                }
            }

            return(thisPerson);
        }