コード例 #1
0
        /// <summary>
        /// Get Search Results View .. Search Post will be done through Ajax method - RaviM
        /// </summary>
        /// <param name="Model"></param>
        /// <returns></returns>
        public ActionResult SearchResults(int start = 1, string range = "20")
        {
            SearchBL.SearchForm obj = new SearchBL.SearchForm();
            if (Session["SearchLimits"] != null)
            {
                SearchBL.MyQueryForm myQyeryForm = new SearchBL.MyQueryForm();
                int userid = CurrentUser.UserId;

                obj = (SearchBL.SearchForm)Session["SearchLimits"];
                int RangeCount = int.Parse(range);
                myQyeryForm.searchInfo = SearchBL.GetSearchInfo(userid, obj.SearchName, Convert.ToInt32(obj.SearchId));

                obj.ArticlesList = SearchBL.SearchFetchRange(userid, obj.SearchName, obj.SearchId, start, start + (RangeCount - 1));
                StringBuilder str = new StringBuilder();

                if (obj.ArticlesList != null)
                {
                    foreach (var item in obj.ArticlesList)
                    {
                        str.Append(item.PMID + ",");
                    }
                }

                string PMIDList = str.ToString();

                if (!string.IsNullOrEmpty(PMIDList))
                {
                    PMIDList = PMIDList.Remove(PMIDList.LastIndexOf(','), 1);
                }
                obj.AllCitationDetails = SearchBL.GetAllCitationAbstract(CurrentUser.UserId, PMIDList, 2, 1);
                obj.QueryDetails       = myQyeryForm.searchInfo.QueryDetails;
                obj.ErrorDesc          = myQyeryForm.searchInfo.ErrorDesc;
                obj.CitationCount      = Convert.ToInt32(myQyeryForm.searchInfo.SearchResultsCount);
                obj.TopicsList         = SearchBL.GetTopicsList(CurrentUser.UserId);

                Session["SearchLimits"] = obj;

                obj.DisplayCount = range;
                if (Session["SearchResults"] != null)
                {
                    SearchBL.SearchForm keep = (SearchBL.SearchForm)Session["SearchResults"];
                    obj.showGoToDestionation = keep.showGoToDestionation; obj.TopicFolderID = keep.FolderID; obj.SpecId = keep.SpecId; obj.resultFolder2 = keep.resultFolder2;
                }

                Session["SearchResults"] = null;
                return(View(obj));
            }
            else
            {
                return(RedirectToAction("Search", "Search"));
            }

            return(View(obj));
        }
コード例 #2
0
        public ActionResult AbstractPrintable(string sort = "date", string searchfolder = "", int MID = 0)
        {
            SearchBL.MyQueryForm myQyeryForm = new SearchBL.MyQueryForm();


            if (MID != 0)
            {
                CitationsModel pmid = new CitationsModel();
                pmid.pmid = MID;
                List <CitationsModel> PMIDCitation = new List <CitationsModel>();
                PMIDCitation.Add(pmid);
                myQyeryForm.CitationDetails        = SearchBL.GetCitationDetails(PMIDCitation, sort, CurrentUser.UserId, 2);
                myQyeryForm.UserComment            = MyLibraryBL.GetUserComment(MID, CurrentUser.UserId);
                myQyeryForm.AbstractCommentsECList = MyLibraryBL.GetAbstractCommentsEC(MID);
            }
            return(View(myQyeryForm));
        }
コード例 #3
0
        public ActionResult CopyCitation(SearchBL.MyQueryForm Model, string actionFirst, string actionSecond, int MID, FormCollection Collection, int start = 1)
        {
            //int specid , oid,fid;
            bool keepDelete;

            if (Collection["KeepDelete"] == "0")
            {
                keepDelete = false;
            }
            else
            {
                keepDelete = true;
            }

            short?DateEnd = Convert.ToInt16(Collection["dateEnd"]);

            if (actionFirst != null)
            {
                if (!string.IsNullOrEmpty(Collection["ddlUserSubTopic"]))
                {
                    var Result = SearchBL.CopyCitation(MID, Collection["ddlUserSubTopic"], CurrentUser.UserId, Convert.ToInt32(Collection["SearchId"]), DateEnd, keepDelete);

                    return(RedirectToAction("index", "mylibrary", new { specid = Result, oid = Model.FolderID, fid = Collection["ddlUserSubTopic"], selaction = "saved", start = start }));
                }
                else
                {
                    return(RedirectToAction("QueryCitationAbstract", "MyQueries", new { MID = MID }));
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(Collection["ddlUserSubTopicSecond"]))
                {
                    var Result = SearchBL.CopyCitation(MID, Collection["ddlUserSubTopicSecond"], CurrentUser.UserId, Convert.ToInt32(Collection["SearchId"]), DateEnd, keepDelete);

                    return(RedirectToAction("index", "mylibrary", new { specid = Result, oid = Model.FolderID, fid = Collection["ddlUserSubTopicSecond"], selaction = "saved", start = start }));
                }
                else
                {
                    return(RedirectToAction("QueryCitationAbstract", "MyQueries", new { MID = MID }));
                }
            }
        }
コード例 #4
0
        public ActionResult QueryCitationAbstract(string sort = "date", string searchfolder = "", int MID = 0, int Search = 0)
        {
            SearchBL.MyQueryForm myQyeryForm = new SearchBL.MyQueryForm();

            List <SearchBL.MyQueryForm> myQueriesList = new List <SearchBL.MyQueryForm>();

            myQueriesList             = SearchBL.MyQueriesList(CurrentUser.UserId);
            myQyeryForm.myQueriesList = myQueriesList;

            myQyeryForm.Isendemail = SearchBL.GetIsSendEmail(CurrentUser.UserId);
            myQyeryForm.TopicsList = SearchBL.GetTopicsList(CurrentUser.UserId);
            if (MID != 0)
            {
                CitationsModel pmid = new CitationsModel();
                pmid.pmid = MID;
                List <CitationsModel> PMIDCitation = new List <CitationsModel>();
                PMIDCitation.Add(pmid);
                myQyeryForm.CitationDetails        = SearchBL.GetCitationDetails(PMIDCitation, sort, CurrentUser.UserId, 2);
                myQyeryForm.UserComment            = MyLibraryBL.GetUserComment(MID, CurrentUser.UserId);
                myQyeryForm.AbstractCommentsECList = MyLibraryBL.GetAbstractCommentsEC(MID);
                myQyeryForm.SearchID = Search; myQyeryForm.queryDetails = SearchBL.GetSearchQuery(CurrentUser.UserId, "", Search);
            }
            return(View(myQyeryForm));
        }
コード例 #5
0
        /// <summary>
        /// SearchFullText Linkout using PMID - RaviM
        /// </summary>
        /// <param name="PMID"></param>
        /// <returns></returns>
        public ActionResult SearchFullTextLinkout(int PMID = 0, bool FromPMedline = false)
        {
            SearchBL.MyQueryForm myQyeryForm = new SearchBL.MyQueryForm();

            string Query = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?tool=CogentMedicineWebSite&[email protected]&dbfrom=pubmed&id=" + PMID + "&cmd=llinkslib";

            EditorsChoicemodel citations = UserBL.DisplayPMIDS(CurrentUser.UserId, PMID.ToString(), 2, 1);

            XmlDocument xdoc = new XmlDocument();

            xdoc.Load(Query);
            XDocument doc = XDocument.Load(Query);

            if (xdoc != null)
            {
                XmlNodeList xNodes = xdoc.DocumentElement.GetElementsByTagName("ObjUrl");

                List <FullTextLinkOuts> XMLDataList     = new List <FullTextLinkOuts>();
                List <FullTextLinkOuts> Aggregatorslist = new List <FullTextLinkOuts>();
                List <FullTextLinkOuts> ProvList        = new List <FullTextLinkOuts>();

                string str = string.Empty;

                foreach (XmlNode dStr in xNodes)
                {
                    FullTextLinkOuts XMLData = new FullTextLinkOuts();

                    XmlNode SubTypeNode = dStr.SelectSingleNode("SubjectType");

                    if (SubTypeNode != null)
                    {
                        if (SubTypeNode.InnerText.ToLower() == "publishers/providers")
                        {
                            var Description = xdoc.SelectNodes("eLinkResult/LinkSet/IdUrlList/IdUrlSet/ObjUrl/Attribute");
                            XMLData.ProviderName = ((dStr.LastChild).FirstChild).InnerText;
                            XMLData.URLS         = (dStr.FirstChild).InnerText;
                            ProvList.Add(XMLData);
                        }
                        else if (SubTypeNode.InnerText.ToLower() == "aggregators")
                        {
                            string Description = xdoc.SelectSingleNode("eLinkResult/LinkSet/IdUrlList/IdUrlSet/ObjUrl/Attribute").InnerText;

                            XMLData.ProviderName = ((dStr.LastChild).FirstChild).InnerText;
                            XMLData.URLS         = (dStr.FirstChild).InnerText;
                            Aggregatorslist.Add(XMLData);
                        }
                        else
                        {
                            str = (dStr.FirstChild).InnerText;

                            if (str.Substring(0, 1) == "/")
                            {
                                str = "http://www.ncbi.nlm.nih.gov" + str;
                            }
                            XMLData.URLS         = str;
                            XMLData.ProviderName = ((dStr.LastChild).FirstChild).InnerText;

                            XMLDataList.Add(XMLData);
                        }
                    }
                }

                citations.linklist       = XMLDataList;
                citations.ProviderPublis = ProvList;
                citations.Aggregator     = Aggregatorslist;
            }

            citations.PMID = Convert.ToInt32(PMID);
            myQyeryForm.LinkoutModelVar = citations;
            if (FromPMedline)
            {
                myQyeryForm.FromPMedline = true;
            }
            return(View(myQyeryForm));
        }
コード例 #6
0
        //
        // GET: /MyQueries/

        #region

        public ActionResult MyQueries(int?FID, int?searchid, string SearchName, string searchfolder = "", int start = 1)
        {
            int userid = AJA_Core.CurrentUser.UserId;

            SearchBL.MyQueryForm        myQyeryForm   = new SearchBL.MyQueryForm();
            List <SearchBL.MyQueryForm> myQueriesList = new List <SearchBL.MyQueryForm>();

            myQueriesList             = SearchBL.MyQueriesList(userid);
            myQyeryForm.myQueriesList = myQueriesList;
            myQyeryForm.Isendemail    = SearchBL.GetIsSendEmail(userid);
            if (searchid != 0 && !string.IsNullOrEmpty(SearchName))
            {
                myQyeryForm.queryDetails = SearchBL.GetSearchQuery(userid, SearchName, searchid);
                myQyeryForm.searchInfo   = SearchBL.GetSearchInfo(userid, SearchName, Convert.ToInt32(searchid));
                SearchBL.ManageQuery MQ = new SearchBL.ManageQuery();
                MQ.SearchId    = searchid; MQ.QueryDetails = myQyeryForm.searchInfo.QueryDetails; MQ.Name = myQyeryForm.queryDetails.SearchName;
                MQ.Description = myQyeryForm.queryDetails.Description; MQ.Autosearch = Convert.ToBoolean(myQyeryForm.queryDetails.AutoSearch);
                MQ.KeepDelete  = Convert.ToInt32(myQyeryForm.queryDetails.KeepDelete);
                MQ.ShelfLife   = myQyeryForm.queryDetails.ShelfLife.ToString();

                if (FID != 0)
                {
                    myQyeryForm.queryDestination = SearchBL.GetQueryDestination(Convert.ToInt32(FID));
                    MQ.FolderID = FID;
                    if (myQyeryForm.queryDestination != null)
                    {
                        MQ.DestinationFolder = myQyeryForm.queryDestination.SpecialtyName + " / " + myQyeryForm.queryDestination.TopicName + " / " + myQyeryForm.queryDestination.SubTopicName;
                    }

                    myQyeryForm.Citations = SearchBL.GetSearchCitations(Convert.ToInt32(searchid), CurrentUser.UserId);

                    if (myQyeryForm.Citations.Count > 0)
                    {
                        myQyeryForm.CitationDetails = MyLibraryBL.GetCitationDetails(myQyeryForm.Citations, "date", CurrentUser.UserId, 1);
                        TimeSpan timespan = (DateTime.Now - Convert.ToDateTime(myQyeryForm.Citations[0].expiredate));
                        if (myQyeryForm.Citations[0].keepdelete)
                        {
                            myQyeryForm.TrackDays = timespan.Days.ToString() + " days until keep";
                        }
                        else
                        {
                            myQyeryForm.TrackDays = timespan.Days.ToString() + " days until delete";
                        }
                    }
                    else
                    {
                        myQyeryForm.CitationDetails = null;
                    }
                }
                if (!string.IsNullOrEmpty(searchfolder))
                {
                    myQyeryForm.CitationDetails = myQyeryForm.CitationDetails.Where(c => c.pmid.ToString() == searchfolder || (c.AuthorList ?? "").Contains(searchfolder) || (c.ArticleTitle ?? "").Contains(searchfolder) || (c.MedlinePgn ?? "").Contains(searchfolder) || (c.MedlineTA ?? "").Contains(searchfolder)).ToList();
                }
                if (myQyeryForm.CitationDetails != null)
                {
                    myQyeryForm.CitationDetailsTotal = myQyeryForm.CitationDetails;
                    myQyeryForm.CitationDetails      = myQyeryForm.CitationDetailsTotal.Skip(start - 1).Take(15).ToList();
                }

                Session["ManageQuery"] = MQ;
            }
            return(View(myQyeryForm));
        }