示例#1
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            context.Response.Write("results=");

            string searchterms = context.Request.QueryString["Field"];
            string pid         = context.Request.QueryString["PID"];

            var factory = new vwarDAL.DataAccessFactory();

            vwarDAL.IDataRepository vd = factory.CreateDataRepositorProxy();

            vwarDAL.ContentObject co = vd.GetContentObjectById(pid, false);

            if (searchterms.Contains("UpAxis"))
            {
                context.Response.Write("UpAxis=" + co.UpAxis + ";");
            }
            if (searchterms.Contains("UnitScale"))
            {
                context.Response.Write("UnitScale=" + co.UnitScale + ";");
            }
            if (searchterms.Contains("NumPolygons"))
            {
                context.Response.Write("NumPolygons=" + co.NumPolygons + ";");
            }
            if (searchterms.Contains("NumTextures"))
            {
                context.Response.Write("NumTextures=" + co.NumTextures + ";");
            }
            if (searchterms.Contains("Label"))
            {
                context.Response.Write("Label=" + co.Label + ";");
            }
            if (searchterms.Contains("Keywords"))
            {
                context.Response.Write("Keywords=" + co.Keywords + ";");
            }

            context.Response.End();
        }
示例#2
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            context.Response.Write("results=");

            string searchterms = context.Request.QueryString["Field"];
            string pid = context.Request.QueryString["PID"];

            var factory = new vwarDAL.DataAccessFactory();
            vwarDAL.IDataRepository vd = factory.CreateDataRepositorProxy();

            vwarDAL.ContentObject co = vd.GetContentObjectById(pid,false);

            if (searchterms.Contains("UpAxis"))
            {
                context.Response.Write("UpAxis=" + co.UpAxis + ";");
            }
            if (searchterms.Contains("UnitScale"))
            {
                context.Response.Write("UnitScale=" + co.UnitScale + ";");
            }
            if (searchterms.Contains("NumPolygons"))
            {
                context.Response.Write("NumPolygons=" + co.NumPolygons + ";");
            }
            if (searchterms.Contains("NumTextures"))
            {
                context.Response.Write("NumTextures=" + co.NumTextures + ";");
            }
            if (searchterms.Contains("Label"))
            {
                context.Response.Write("Label=" + co.Label + ";");
            }
            if (searchterms.Contains("Keywords"))
            {
                context.Response.Write("Keywords=" + co.Keywords + ";");
            }

            context.Response.End();
        }
示例#3
0
        public vwarDAL.IDataRepository GetRepo()
        {
            if (FedoraProxy1 != null)
                return FedoraProxy1;

            vwarDAL.DataAccessFactory dalf = new vwarDAL.DataAccessFactory();
            FedoraProxy1 = dalf.CreateDataRepositorProxy();
            return FedoraProxy1;
        }
示例#4
0
        public List<SearchResult> AdvancedSearch(string searchmethod, string searchstring, string key)
        {
            if (!CheckKey(key))
                return null;
            try
            {
                searchstring = HttpUtility.UrlDecode(searchstring);
                String[] termpairlist = searchstring.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                System.Collections.Specialized.NameValueCollection searchFieldsAndTerms = new System.Collections.Specialized.NameValueCollection();
                foreach (string s in termpairlist)
                {
                    string[] t = s.Split(new char[] { '=' });
                    searchFieldsAndTerms[t[0]] = t[1];
                }
                string username = GetUsername();
                if (username == "")
                    return null;
                //Do the search

                List<SearchResult> results = new List<SearchResult>();
                vwarDAL.PermissionsManager prm = new vwarDAL.PermissionsManager();

                vwarDAL.DataAccessFactory factory = new vwarDAL.DataAccessFactory();
                vwarDAL.ISearchProxy search = factory.CreateSearchProxy(username);

                vwarDAL.SearchMethod method = vwarDAL.SearchMethod.OR;
                if (searchmethod.Equals("AND", StringComparison.CurrentCultureIgnoreCase))
                    method = vwarDAL.SearchMethod.AND;

                IEnumerable<vwarDAL.ContentObject> caresults = search.SearchByFields(searchFieldsAndTerms, method);

                //Build the search results
                foreach (vwarDAL.ContentObject co in caresults)
                {
                    SearchResult r = new SearchResult();
                    r.PID = co.PID;
                    r.Title = co.Title;
                    results.Add(r);
                }
                search.Dispose();
                return results;
            }
            catch (Exception ex)
            {
                List<SearchResult> results = new List<SearchResult>();
                results.Add(new SearchResult
                {
                    Title = ex.Message
                });
                return results;
            }
            //return them
        }
示例#5
0
        //Search the repo for a list of pids that match a search term
        //This returns the results as a list of pairs of titles and pids
        //will eventually take a pagenum and other params for more advanced searching
        public List<SearchResult> Search(string terms, string key)
        {
            if (!CheckKey(key))
                return null;
            try
            {
                terms = HttpUtility.UrlDecode(terms);
                String[] termlist = terms.Split(new char[] {';', ',', '&' }, StringSplitOptions.RemoveEmptyEntries);

                string username = GetUsername();
                if (username == "")
                    return null;
                //Do the search

                List<SearchResult> results = new List<SearchResult>();
                vwarDAL.PermissionsManager prm = new vwarDAL.PermissionsManager();
                vwarDAL.DataAccessFactory factory = new vwarDAL.DataAccessFactory();
                vwarDAL.ISearchProxy search = factory.CreateSearchProxy(username);
                bool usingKeyword = false;

                if (termlist[0] == "Keywords")
                {
                    List<String> temp = new List<string>(termlist);
                    temp.RemoveAt(0);
                    termlist = temp.ToArray();
                    usingKeyword = true;
                }

                foreach (string searchterm in termlist)
                {
                    IEnumerable<vwarDAL.ContentObject> caresults;
                    if (! usingKeyword)
                        caresults = search.DeepSearch(searchterm);
                    else
                        caresults = search.QuickSearch(searchterm);

                    //Build the search results
                    if (caresults != null)
                        foreach (vwarDAL.ContentObject co in caresults)
                        {
                            SearchResult r = new SearchResult();
                            r.PID = co.PID;
                            r.Title = co.Title;
                            results.Add(r);
                        }
                }
                search.Dispose();
                prm.Dispose();

                return results;
            }
            catch (Exception ex)
            {
                List<SearchResult> results = new List<SearchResult>();
                results.Add(new SearchResult
                {
                    Title = ex.Message + ex.StackTrace
                });

                return results;
            }
            //return them
        }