Esempio n. 1
0
        public async Task <ActionResult <Post> > PostSearch(ReqForSearch req)
        {
            IQueryable <Post> result;

            if (req.MainCat == -1)
            {
                result = _context.Post
                         .Where(pos =>
                                pos.Title.Contains(req.KeyWord) || pos.FirstTag.Contains(req.KeyWord) ||
                                pos.SecondTag.Contains(req.KeyWord) || pos.ThirdTag.Contains(req.KeyWord) ||
                                pos.FourthTag.Contains(req.KeyWord)).Where(posts => posts.IsDrafted == false);
            }
            else
            {
                result = _context.Post.Where(pos => pos.MainCategory == req.MainCat && pos.IsDrafted == false).Where(
                    pos => pos.Title.Contains(req.KeyWord) || pos.FirstTag.Contains(req.KeyWord) ||
                    pos.SecondTag.Contains(req.KeyWord) || pos.ThirdTag.Contains(req.KeyWord) ||
                    pos.FourthTag.Contains(req.KeyWord));
            }


            if (!result.Any())
            {
                return(Ok(Response(false, "not found")));
            }
            return(Ok(Response(true, "found somthing", result)));
        }
Esempio n. 2
0
        public async Task <ActionResult <Post> > UserSearch(ReqForSearch req)
        {
            // for global user search should assign -1 to bio

            IQueryable <User> result;

            if (req.Bio == -1)
            {
                result = _context.User.Where(user => user.UserName.Contains(req.KeyWord));
            }
            else
            {
                result = req.Bio switch
                {
                    0 => _context.User.Where(users =>
                                             users.Edu_highSchool.Contains(req.KeyWord) || users.Edu_univercity.Contains(req.KeyWord) ||
                                             users.Edu_subject.Contains(req.KeyWord)),
                    1 => _context.User.Where(user =>
                                             user.Work_job.Contains(req.KeyWord) || user.Work_company.Contains(req.KeyWord)),
                    2 => _context.User.Where(user =>
                                             user.Languge_motherTongue.Contains(req.KeyWord) || user.Languge_dialect.Contains(req.KeyWord) ||
                                             user.Languge_secondLangName.Contains(req.KeyWord)),
                    3 => _context.User.Where(user =>
                                             user.Location_motherTown.Contains(req.KeyWord) ||
                                             user.Location_livingCountry.Contains(req.KeyWord) ||
                                             user.Location_livingTown.Contains(req.KeyWord)),
                    _ => default
                };
            }



            if (!result.Any())
            {
                return(Ok(Models.Response.NewResponse(false, "not found")));
            }
            return(Ok(Models.Response.NewResponse(true, "found somthing", await result.ToListAsync())));
        }