public List <SearchObject> GetSearchObjects(Type type, DbServiceProvider dbService, int websiteId, int languageId)
        {
            var searchObjects = new List <SearchObject>();
            var repo          = DbServiceProvider.Execute(type, dbService);
            var datas         = repo.LanguageAndWebsiteFilteredData(websiteId, languageId);

            foreach (var obj in datas)
            {
                foreach (SearchModelProperty item in searchModelProperties)
                {
                    var prop      = type.GetProperty(item.PropertyName);
                    var propvalue = prop?.GetValue(obj)?.ToString();
                    if (propvalue != null)
                    {
                        if (item.IsHtml)
                        {
                            propvalue = propvalue.Replace("&nbsp;", string.Empty);
                            propvalue = Regex.Replace(propvalue, "<.*?>", string.Empty);
                            propvalue = Regex.Replace(propvalue, "\t", " ");
                            propvalue = Regex.Replace(propvalue, "\r", " ");
                            propvalue = Regex.Replace(propvalue, "\n", " ");
                            propvalue = propvalue.Trim(' ');
                        }

                        searchObjects.Add(new SearchObject()
                        {
                            Instance = obj,
                            Value    = propvalue,
                            Power    = 0
                        });
                    }
                }
            }

            return(searchObjects);
        }
 public SearchSystem(IServiceProvider serviceProvider)
 {
     this.serviceProvider = serviceProvider;
     dbServiceProvider    = serviceProvider.GetService <DbServiceProvider>();
     SearchObjects        = new List <SearchObject>();
 }