Exemplo n.º 1
0
        public override bool Equals(Object obj)
        {
            clsCollection vObj = obj as clsCollection;

            if (vObj == null)
            {
                return(false);
            }
            else
            {
                return(CollectionID.Equals(vObj.CollectionID));
            }
        }
Exemplo n.º 2
0
        private void AddGlobalData(XmlDocument xml, XmlElement results)
        {
            XmlElement t = null;

            t           = xml.CreateElement("testid");
            t.InnerText = CollectionID.ToString();
            results.AppendChild(t);

            t           = xml.CreateElement("starttime");
            t.InnerText = CollectionStartTime.ToString();
            results.AppendChild(t);

            t           = xml.CreateElement("endtime");
            t.InnerText = CollectionEndTime.ToString();
            results.AppendChild(t);

            if (String.IsNullOrEmpty(this.ThumbnailsRoot) == false)
            {
                t           = xml.CreateElement("thumbnailroot");
                t.InnerText = this.ThumbnailsRoot;
                results.AppendChild(t);
            }
        }
Exemplo n.º 3
0
        private Searchblox RunQuery(Searchblox criteria)
        {
            try
            {
                if (!criteria.Query.IsNullOrEmpty() && !SearchBloxServerIP.IsNullOrEmpty())
                {
                    WebClient client = new WebClient();
                    client.BaseAddress = Request.Url.ToString();

                    // Assemble SearchBlox query string
                    string queryParams = "?xsl=xml&page=" + criteria.Page;
                    if (!SortBy.IsNullOrEmpty())
                    {
                        queryParams += "&sort=" + SortBy;
                    }
                    if (!CollectionID.IsNullOrEmpty())
                    {
                        var collectionIds = CollectionID.Split(',');
                        foreach (var collectionId in collectionIds)
                        {
                            queryParams += "&col=" + collectionId.Trim();
                        }
                    }
                    if (!String.IsNullOrEmpty(criteria.Query))
                    {
                        queryParams += "&query=" + criteria.Query;
                    }

                    Stream data;
                    string dataUrl;

                    dataUrl = @"http://" + SearchBloxServerIP + (String.IsNullOrEmpty(SearchBloxServerPort) ? "" : ":" + SearchBloxServerPort) + @"/searchblox/servlet/SearchServlet" + queryParams;

                    data = client.OpenRead(dataUrl);

                    TextReader reader = new StreamReader(data);
                    string     text   = reader.ReadToEnd();

                    XDocument xml     = XDocument.Parse(text);
                    var       results = new List <SearchbloxResult>();              // results to pass to view

                    // load featured results first
                    var xmlFeaturedResults = from xmlFeaturedResult in xml.Descendants("ad") select xmlFeaturedResult;
                    foreach (var xmlFeaturedResult in xmlFeaturedResults)
                    {
                        results.Add(new SearchbloxResult(xmlFeaturedResult, true));
                    }

                    // load normal search results
                    var xmlResults = from xmlResult in xml.Descendants("result") select xmlResult;
                    foreach (var xmlResult in xmlResults)
                    {
                        results.Add(new SearchbloxResult(xmlResult));
                    }

                    // remove configured string from page title (usually used to remove the site title)
                    if (!RemoveFromPageTitle.IsNullOrEmpty())
                    {
                        foreach (var r in results)
                        {
                            r.Title = r.Title.Replace(RemoveFromPageTitle, "");
                        }
                    }
                    criteria.Results = results;

                    // prep meta data for the results set
                    var resultsMetaXML = from xmlMeta in xml.Descendants("results") select xmlMeta;
                    var resultsMeta    = resultsMetaXML.FirstOrDefault();
                    criteria.NumResults = int.Parse(resultsMeta.Attribute("hits").Value);
                    criteria.NumPages   = int.Parse(resultsMeta.Attribute("lastpage").Value);
                    criteria.PageStart  = int.Parse(resultsMeta.Attribute("start").Value);
                    criteria.PageEnd    = int.Parse(resultsMeta.Attribute("end").Value);

                    if (criteria.NumPages > 1)
                    {
                        criteria.PageingUrl = Request.Url.GetLeftPart(UriPartial.Path) + "?query=" + HttpUtility.UrlEncode(criteria.Query) + "&page=";
                    }

                    //XmlSerializer serializer = new XmlSerializer(typeof(searchdoc));
                    //XmlReader xmlReader = XmlReader.Create(new StringReader(text));

                    //searchdoc xmlResults = (searchdoc)serializer.Deserialize(xmlReader);

                    //searchdocResults resultsObject = (searchdocResults)xmlResults.Items.Where(x => x.GetType() == typeof(searchdocResults)).FirstOrDefault();
                    //searchdocAds featuredResultsObject = (searchdocAds)xmlResults.Items.Where(x => x.GetType() == typeof(searchdocAds)).FirstOrDefault();

                    //if (featuredResultsObject != null)
                    //{
                    //	int featuredPosition = 0;

                    //	//@TODO test if filtering needed
                    //	//foreach (searchdocAdsAD featuredResult in featuredResultsObject.ad.Where(x => x.keywords.ToLower().Contains(resultsObject.query.ToLower().Replace("\"", ""))))
                    //	foreach (searchdocAdsAD featuredResult in featuredResultsObject.ad)
                    //	{
                    //		searchdocResultsResult newResult = new searchdocResultsResult()
                    //		{
                    //			title = featuredResult.title,
                    //			description = featuredResult.description,
                    //			url = featuredResult.url
                    //		};
                    //		resultsObject.result.Insert(featuredPosition, newResult);
                    //		featuredPosition++;
                    //	}
                    //}

                    //searchResults.Results = resultsObject.result;


                    //int numberOfResults = 0;
                    //Int32.TryParse(resultsObject.hits.Replace("\"", ""), out numberOfResults);
                    //searchResults.NumResults = numberOfResults;


                    //int startResultNumber = (pageNumber - 1) * 10 + 1;  // So we can display result 11 of 26, etc.
                    //int endResultNumber = pageNumber * 10;  // So we can display result 11 of 26, etc.

                    //int nextPageNumber = -1;
                    //int prevPageNumber = -1;
                    //if (endResultNumber < numberOfResults)
                    //{
                    //	nextPageNumber = pageNumber + 1;
                    //}
                    //if (pageNumber > 1)
                    //{
                    //	prevPageNumber = pageNumber - 1;
                    //}

                    //if (numberOfResults > 1)
                    //{
                    //	searchResults.pageingUrl = Request.Url.GetLeftPart(UriPartial.Path) + "?query=" + query + "&page=";
                    //}
                    //searchResults.pageNumber = pageNumber;

                    reader.Close();

                    data.Close();
                }

                return(criteria);
            }
            catch (Exception ex)
            {
                criteria.ErrorMessage = ex.Message;
                return(criteria);
            }
        }
Exemplo n.º 4
0
 public bool Equals(Collection other)
 {
     return(other != null && CollectionID.Equals(other.CollectionID));
 }