Пример #1
0
        // GET: NoticeBoard
        public ActionResult Index()
        {
            var noticeVMList = new List <NoticeBoardViewModel>();
            var notices      = _noticeBoardManager.GetApprovedNotices();

            foreach (var n in notices)
            {
                var totalComnts = _noticeBoardManager.GetComments(n.Id).Count();
                noticeVMList.Add(new NoticeBoardViewModel
                {
                    Notice        = n,
                    TotalComments = totalComnts,
                    NoticeImage   = _noticeBoardManager.GetNoticeImage(n.Id, "Notice")
                });
            }

            return(View(noticeVMList.OrderByDescending(y => y.Notice.SubmitDate).OrderByDescending(x => x.Notice.PinUp).ToList()));
        }
Пример #2
0
        public IEnumerable <SearchViewModel> SearchData(string Search_Text)
        {
            // var fixedInput = Regex.Replace(Search_Text, "[^a-zA-Z0-9% ._]", string.Empty);

            //var splitted = fixedInput.Split(' ');
            var splitted = Search_Text.Split('-');

            IEnumerable <UserInfo>       User         = _userProfile.AllUser();
            IEnumerable <NoticeBoard>    Notices      = _noticeBoardManager.GetApprovedNotices();
            IEnumerable <EventViewModel> Event        = _event.AllEvent();
            List <SearchViewModel>       SearchResult = new List <SearchViewModel>();


            string ResultStirng;
            bool   Found = false;


            foreach (var SearchText in splitted)
            {
                if (SearchText != "" && SearchText.Length > 2)
                {
                    foreach (var x in User)
                    {
                        Found        = false;
                        ResultStirng = null;
                        int Ranking = (int)Searching.Priority0;

                        if (Matchtext(SearchText, x.Name))
                        {
                            if (!(Matchtext(ResultStirng, "Name" + Helpers.Constants.End + x.Name + Helpers.Constants.Start)))
                            {
                                ResultStirng = ResultStirng + "Name" + Helpers.Constants.End + x.Name + Helpers.Constants.Start;
                            }

                            Found = true;
                            Ranking++;
                        }

                        if (Matchtext(SearchText, x.CompanyName))
                        {
                            if (!(Matchtext(ResultStirng, "Company Name" + Helpers.Constants.End + x.CompanyName + Helpers.Constants.Start)))
                            {
                                ResultStirng = ResultStirng + "Company Name" + Helpers.Constants.End + x.CompanyName + Helpers.Constants.Start;
                            }

                            Found = true;
                            Ranking++;
                        }

                        if (Matchtext(SearchText, x.CurrentJobTitle))
                        {
                            if (!(Matchtext(ResultStirng, "Current Job Title" + Helpers.Constants.End + x.CurrentJobTitle + Helpers.Constants.Start)))
                            {
                                ResultStirng = ResultStirng + "Current Job Title" + Helpers.Constants.End + x.CurrentJobTitle + Helpers.Constants.Start;
                            }

                            Found = true;
                            Ranking++;
                        }

                        if (Matchtext(SearchText, x.Skills))
                        {
                            if (!(Matchtext(ResultStirng, "Skills" + Helpers.Constants.End + x.Skills + Helpers.Constants.Start)))
                            {
                                ResultStirng = ResultStirng + "Skills" + Helpers.Constants.End + x.Skills + Helpers.Constants.Start;
                            }

                            Found = true;
                            Ranking++;
                        }

                        string Describe = "Name : " + x.Name + " Work at : " + x.CompanyName + " Skilled on : " + x.Skills;
                        if (Found)
                        {
                            SearchResult.Add(new SearchViewModel()
                            {
                                ResultId       = x.Id,
                                ResultName     = x.Name,
                                Description    = Describe,
                                ResultCatagory = Helpers.Constants.UserResult.ToString(),
                                MatchedText    = ResultStirng.Remove(ResultStirng.Length - 1),
                                Priority       = Ranking,
                                SearchText     = Search_Text,
                            });


                            Found   = false;
                            Ranking = (int)Searching.Priority0;
                        }
                    }



                    foreach (var y in Notices)
                    {
                        ResultStirng = null;
                        int Ranking = (int)Searching.Priority0;
                        Found = false;



                        string[] SingleSentence = y.Title.Split('!', '.', '?');
                        if (SingleSentence.Length != 0)
                        {
                            SingleSentence[0] = y.Title;
                        }
                        else
                        {
                            SingleSentence = SingleSentence.Take(SingleSentence.Count() - 1).ToArray();
                        }


                        foreach (var sentence in SingleSentence)
                        {
                            if (Matchtext(SearchText, sentence))
                            {
                                if (!(Matchtext(ResultStirng, sentence)))
                                {
                                    ResultStirng = ResultStirng + sentence + Helpers.Constants.Start;
                                }
                                Found = true;
                                Ranking++;
                            }
                        }


                        SingleSentence = y.Description.Split('!', '.', '?');
                        SingleSentence = SingleSentence.Take(SingleSentence.Count() - 1).ToArray();

                        foreach (var sentence in SingleSentence)
                        {
                            if (Matchtext(SearchText, sentence))
                            {
                                if (!(Matchtext(ResultStirng, sentence)))
                                {
                                    ResultStirng = ResultStirng + sentence + Helpers.Constants.Start;
                                }
                                Found = true;
                                Ranking++;
                            }
                        }



                        if (Found)
                        {
                            SearchResult.Add(new SearchViewModel()
                            {
                                ResultId       = y.Id,
                                ResultName     = y.Title,
                                Description    = y.Description,
                                ResultCatagory = Helpers.Constants.Notice.ToString(),
                                MatchedText    = ResultStirng,
                                Priority       = Ranking,
                                SearchText     = Search_Text,
                            });

                            Found   = false;
                            Ranking = (int)Searching.Priority0;
                        }
                    }


                    foreach (var z in Event)
                    {
                        ResultStirng = null;
                        int Ranking = (int)Searching.Priority0;
                        Found = false;

                        string[] SingleSentence = z.EventTitel.Split('!', '.', '?');

                        if (SingleSentence.Length != 0)
                        {
                            SingleSentence[0] = z.EventTitel;
                        }
                        else
                        {
                            SingleSentence = SingleSentence.Take(SingleSentence.Count() - 1).ToArray();
                        }

                        foreach (var sentence in SingleSentence)
                        {
                            if (Matchtext(SearchText, sentence))
                            {
                                if (!(Matchtext(ResultStirng, sentence)))
                                {
                                    ResultStirng = ResultStirng + sentence + Helpers.Constants.Start;
                                }
                                Found = true;
                                Ranking++;
                            }
                        }


                        SingleSentence = z.Description.Split('!', '.', '?');
                        SingleSentence = SingleSentence.Take(SingleSentence.Count() - 1).ToArray();

                        foreach (var sentence in SingleSentence)
                        {
                            if (Matchtext(SearchText, sentence))
                            {
                                if (!(Matchtext(ResultStirng, sentence)))
                                {
                                    ResultStirng = ResultStirng + sentence + Helpers.Constants.Start;
                                }
                                Found = true;
                                Ranking++;
                            }
                        }



                        if (Found)
                        {
                            SearchResult.Add(new SearchViewModel()
                            {
                                ResultId       = z.Id,
                                ResultName     = z.EventTitel,
                                Description    = z.Description,
                                ResultCatagory = Helpers.Constants.Event.ToString(),
                                MatchedText    = ResultStirng,
                                Priority       = Ranking,
                                SearchText     = Search_Text,
                            });

                            Found   = false;
                            Ranking = (int)Searching.Priority0;
                        }
                    }
                }
            }



            List <SearchViewModel> SearchResult2 = new List <SearchViewModel>();

            foreach (var check1 in SearchResult)
            {
                int index1 = SearchResult.IndexOf(check1);

                if (check1.Priority != (int)Searching.Priority0)
                {
                    foreach (var check2 in SearchResult)
                    {
                        int index2 = SearchResult.IndexOf(check2);

                        if ((check1.ResultId == check2.ResultId) && (check1.ResultCatagory == check2.ResultCatagory) && (index1 != index2))
                        {
                            //check1.Priority = check1.Priority + (int)Searching.Priority1;
                            check1.Priority = check1.Priority + check2.Priority;
                            check2.Priority = (int)Searching.Priority0;
                            if (!(Matchtext(check1.MatchedText, check2.MatchedText)))
                            {
                                check1.MatchedText = check1.MatchedText + Helpers.Constants.Start + check2.MatchedText;
                            }
                        }
                    }

                    SearchResult2.Add(new SearchViewModel()
                    {
                        ResultId       = check1.ResultId,
                        ResultName     = check1.ResultName,
                        ResultCatagory = check1.ResultCatagory,
                        MatchedText    = check1.MatchedText,
                        Priority       = check1.Priority,
                        SearchText     = check1.SearchText,
                        Description    = check1.Description,
                    });
                }
            }

            var FinalsearchResult = SearchResult2.OrderByDescending(i => i.Priority);


            return(FinalsearchResult);
        }