Exemplo n.º 1
0
        internal static string PrepareBucketsParams(LinkedInSearchOptions options)
        {
            var sb = new StringBuilder();

            if (options.FacetFields.HasValues)
            {
                sb.Append(":(");
                if (options.FacetFields[LinkedInFacetFields.Code])
                {
                    sb.Append("code,");
                }
                if (options.FacetFields[LinkedInFacetFields.Name])
                {
                    sb.Append("name,");
                }
                if (options.BucketFields.HasValues)
                {
                    sb.Append("buckets:(");
                    if (options.BucketFields[LinkedInBucketFields.Code])
                    {
                        sb.Append("code,");
                    }
                    if (options.BucketFields[LinkedInBucketFields.Name])
                    {
                        sb.Append("name,");
                    }
                    if (options.BucketFields[LinkedInBucketFields.Count])
                    {
                        sb.Append("count,");
                    }
                    if (options.BucketFields[LinkedInBucketFields.Selected])
                    {
                        sb.Append("selected,");
                    }
                    sb.Length -= 1;
                    sb.Append(")");
                }
                sb.Append(")");
            }
            return(sb.ToString());
        }
Exemplo n.º 2
0
        internal static string PrepareSearchParams(LinkedInSearchOptions options)
        {
            var sb = new StringBuilder();

            if (options.Keywords.Count > 0)
            {
                var keywords = string.Join(SPACE, options.Keywords);
                sb.Append("keywords=");
                sb.Append(keywords.Replace("'", "%5C").Replace(" ", SPACE));
                sb.Append("&");
            }
            if (!string.IsNullOrEmpty(options.FirstName))
            {
                sb.Append("first-name=");
                sb.Append(options.FirstName.Replace("'", "%5C").Replace(" ", SPACE));
                sb.Append("&");
            }
            if (!string.IsNullOrEmpty(options.LastName))
            {
                sb.Append("last-name=");
                sb.Append(options.LastName.Replace("'", "%5C").Replace(" ", SPACE));
                sb.Append("&");
            }
            if (!string.IsNullOrEmpty(options.CompanyName))
            {
                sb.Append("company-name=");
                sb.Append(options.CompanyName.Replace("'", "%5C").Replace(" ", SPACE));
                sb.Append("&");
                if (options.CurrentCompany.HasValue)
                {
                    sb.Append(options.CurrentCompany.Value ? "current-company=true" : "current-company=false");
                    sb.Append("&");
                }
            }
            if (!string.IsNullOrEmpty(options.Title))
            {
                sb.Append("title=");
                sb.Append(options.Title.Replace("'", "%5C").Replace(" ", SPACE));
                sb.Append("&");
                if (options.CurrentTitle.HasValue)
                {
                    sb.Append(options.CurrentTitle.Value ? "current-title=true" : "current-title=false");
                    sb.Append("&");
                }
            }
            if (!string.IsNullOrEmpty(options.SchoolName))
            {
                sb.Append("school-name=");
                sb.Append(options.SchoolName.Replace("'", "%5C").Replace(" ", SPACE));
                sb.Append("&");
                if (options.CurrentSchool.HasValue)
                {
                    sb.Append(options.CurrentSchool.Value ? "current-school=true" : "current-school=false");
                    sb.Append("&");
                }
            }
            if (options.Country != LinkedInCountries.None)
            {
                if (Utils.CountryCodes.ContainsKey(options.Country))
                {
                    sb.Append("country-code=");
                    sb.Append(Utils.CountryCodes[options.Country]);
                    sb.Append("&");
                    if (!string.IsNullOrEmpty(options.PostalCode))
                    {
                        sb.Append("postal-code=");
                        sb.Append(options.PostalCode.Replace("'", "%5C").Replace(" ", SPACE));
                        sb.Append("&");
                    }
                    if (options.Distance.HasValue)
                    {
                        sb.Append("distance=");
                        sb.Append(options.Distance.Value);
                        sb.Append("&");
                    }
                }
            }
            return(sb.ToString());
        }
Exemplo n.º 3
0
        internal static string PrepareFacetsParams(LinkedInSearchOptions options)
        {
            var sb = new StringBuilder();

            if (options.FacetTypes != LinkedInFacetTypes.None)
            {
                sb.Append("facets=");
                if ((options.FacetTypes & LinkedInFacetTypes.Location) == LinkedInFacetTypes.Location)
                {
                    sb.Append("location,");
                }
                if ((options.FacetTypes & LinkedInFacetTypes.Network) == LinkedInFacetTypes.Network)
                {
                    sb.Append("network,");
                }
                if ((options.FacetTypes & LinkedInFacetTypes.Industry) == LinkedInFacetTypes.Industry)
                {
                    sb.Append("industry,");
                }
                if ((options.FacetTypes & LinkedInFacetTypes.CurrentCompany) == LinkedInFacetTypes.CurrentCompany)
                {
                    sb.Append("current-company,");
                }
                if ((options.FacetTypes & LinkedInFacetTypes.PastCompany) == LinkedInFacetTypes.PastCompany)
                {
                    sb.Append("past-company,");
                }
                if ((options.FacetTypes & LinkedInFacetTypes.Language) == LinkedInFacetTypes.Language)
                {
                    sb.Append("language,");
                }
                if ((options.FacetTypes & LinkedInFacetTypes.School) == LinkedInFacetTypes.School)
                {
                    sb.Append("school,");
                }
                sb.Length -= 1;
                if (options.FacetLocationValues.Count > 0)
                {
                    sb.Append("&facet=location,");
                    sb.Append(string.Join(",", options.FacetLocationValues));
                }
                if (options.FacetNetworkValues != LinkedInFacetNetwork.None)
                {
                    sb.Append("&facet=network,");
                    if ((options.FacetNetworkValues & LinkedInFacetNetwork.FirstDegree) ==
                        LinkedInFacetNetwork.FirstDegree)
                    {
                        sb.Append("F,");
                    }
                    if ((options.FacetNetworkValues & LinkedInFacetNetwork.SecondDegree) ==
                        LinkedInFacetNetwork.SecondDegree)
                    {
                        sb.Append("S,");
                    }
                    if ((options.FacetNetworkValues & LinkedInFacetNetwork.InsideGroup) ==
                        LinkedInFacetNetwork.InsideGroup)
                    {
                        sb.Append("A,");
                    }
                    if ((options.FacetNetworkValues & LinkedInFacetNetwork.OutOfNetwork) ==
                        LinkedInFacetNetwork.OutOfNetwork)
                    {
                        sb.Append("O,");
                    }
                    sb.Length -= 1;
                }
                if (options.FacetIndustryValues.Count > 0)
                {
                    sb.Append("&facet=industry,");
                    sb.Append(string.Join(",", options.FacetIndustryValues));
                }
                if (options.FacetCurrentCompanyValues.Count > 0)
                {
                    sb.Append("&facet=current-company,");
                    sb.Append(string.Join(",", options.FacetCurrentCompanyValues));
                }
                if (options.FacetPastCompanyValues.Count > 0)
                {
                    sb.Append("&facet=past-company,");
                    sb.Append(string.Join(",", options.FacetPastCompanyValues));
                }
                if (options.FacetSchoolValues.Count > 0)
                {
                    sb.Append("&facet=school,");
                    sb.Append(string.Join(",", options.FacetSchoolValues));
                }
                if (options.FacetLanguageValues.Count > 0)
                {
                    sb.Append("&facet=language,");
                    foreach (var f in options.FacetLanguageValues)
                    {
                        switch (f)
                        {
                        case LinkedInFacetLanguage.English:
                            sb.Append("en,");
                            break;

                        case LinkedInFacetLanguage.Russian:
                            sb.Append("ru,");
                            break;

                        case LinkedInFacetLanguage.French:
                            sb.Append("fr,");
                            break;

                        case LinkedInFacetLanguage.German:
                            sb.Append("de,");
                            break;

                        case LinkedInFacetLanguage.Italian:
                            sb.Append("it,");
                            break;

                        case LinkedInFacetLanguage.Portuguese:
                            sb.Append("pt,");
                            break;

                        case LinkedInFacetLanguage.Spanish:
                            sb.Append("es,");
                            break;

                        case LinkedInFacetLanguage.Others:
                            sb.Append("_o,");
                            break;
                        }
                    }
                    sb.Length -= 1;
                }
                sb.Append("&");
            }
            var result = sb.ToString().Replace(",", "%2C").Replace(":", "%3A");

            return(result);
        }