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))); }
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()))); }