async public Task <IActionResult> Search(
            string keyword,
            string zone,
            Guid?categoryId = null,
            int?provinceId  = null,
            int?districtId  = null)
        {
            SetPageContent("search");

            var result = _projectEngine.SearchItems(keyword, zone, categoryId: categoryId, provinceId: provinceId, districtId: districtId);

            var user = await _userEngine.CurrentUser(_userManager.GetUserId(User));

            var model = new SearchViewModel()
            {
                PageNumber       = 0,
                Result           = result,
                SearchSortTypes  = _projectEngine.GetSearchSortTypes(),
                SearchSortTypeId = (int)SearchSortTypes.Newest,
                Provinces        = _projectEngine.GetProvincesSelectList(),
                Categories       = _projectEngine.GetUserCategories()
            };

            if (provinceId.HasValue)
            {
                model.Districts = _projectEngine.GetDistrictsSelectList(provinceId);
            }
            else
            {
                model.Districts = _projectEngine.GetDistrictsSelectList(null);
            }

            return(View(model));
        }