public FilterCmdManager() { String[] filterCmd = ConfigHelper.GetAppConfig ("filter_cmd").Split(','); String[] filterBeginCount = ConfigHelper.GetAppConfig ("filter_begin_count").Split(','); for (int i = 0; i < filterCmd.Length; i++) { FilterCmd fc = new FilterCmd(filterCmd[i],StringKit.toInt(filterBeginCount[i])); FilterCmdDict.Add (filterCmd [i], fc); } }
public override LevelFilterResult FromChatString(string chatString, string option) { FilterCmd filterCmd = Cmd.all.getCommand <FilterCmd>("filter"); string filterName = null; string filter = null; string searchRegex = GeneralUtilities.getSearchRegex(chatString); var count = 0; foreach (KeyValuePair <string, string> pair in filterCmd.savedFilters) { if (Regex.IsMatch(pair.Key, searchRegex, RegexOptions.IgnoreCase)) { if (count == 0) { filterName = pair.Key; filter = pair.Value; } count++; } } if (count == 0) { return(new LevelFilterResult("Found no matching filters. Try !filter list")); } if (filterLoadStack.Any(filterTxt => filterTxt == filterName)) { return(new LevelFilterResult("Your -filter contained itself")); } filterLoadStack.Add(filterName); try { var filters = FilteredPlaylist.ParseFiltersFromString(filter); filters.value.Insert(0, new LevelFilterSaved()); // Some commands search through filters to check stuff filterLoadStack.RemoveAt(filterLoadStack.Count - 1); return(new LevelFilterResult(filters.value)); } catch (Exception e) { filterLoadStack.RemoveAt(filterLoadStack.Count - 1); Console.WriteLine("-last error:\n" + e); return(new LevelFilterResult("There was an error retrieving -last")); } }
public IEnumerable <Category> Filter(FilterCmd command) { Notification.Clear(); IEnumerable <Category> results = new List <Category>(); if (command.IsValid()) { results = _categoryRepository.Filter(command); if (Notification.HasNotifications) { Notification.AddNotifications(_categoryRepository.Notification.Notifications); } } else { Notification.AddNotifications(command.Validation); } return(results); }
public IEnumerable <Category> Filter(FilterCmd command) { IList <Category> results = new List <Category>(); StringBuilder sql = new StringBuilder(); StringBuilder sqlFilter = new StringBuilder(); StringBuilder sqlKeyWord = new StringBuilder(); IList <string> textKeyWord = command.DismemberKeyWord(); sql.Append("SELECT Cat FROM Category as Cat"); if (command.Category.Count > 0) { sqlFilter.Append(" AND Cat.Id IN (:CategoryId) "); } if (command.Status.Count > 0) { sqlFilter.Append(" AND Cat.Status IN (:Status) "); } if (!string.IsNullOrWhiteSpace(command.PerName)) { sqlFilter.Append(" AND Cat.Name = : PerName "); } if (!Equals(textKeyWord, null) && textKeyWord.Count > 0) { sqlFilter.Append(" AND ( "); for (int i = 0; i < textKeyWord.Count(); i++) { sqlKeyWord.Append(string.Format(" OR CollateLatinGeneral(Cat.Name) LIKE :texto{0} ", i)); } sqlFilter.Append(Regex.Replace(sqlKeyWord.ToString(), @"^ OR ", "")); sqlFilter.Append(" ) "); } sql.Append(Regex.Replace(sqlFilter.ToString(), @"^ And ", " WHERE ")); var query = Connection.Session.CreateQuery(sql.ToString()); query.SetMaxResults(command.Maximum); query.SetFirstResult((command.Page - 1) * command.Maximum); query.SetResultTransformer(new DistinctRootEntityResultTransformer()); if (command.Category.Count > 0) { query.SetParameterList("CategoryId", command.Category); } if (command.Status.Count > 0) { query.SetParameterList("Status", command.Status); } if (!string.IsNullOrEmpty(command.PerName)) { query.SetString("PerName", command.PerName); } if (!Equals(textKeyWord, null) && textKeyWord.Count > 0) { for (int i = 0; i < textKeyWord.Count(); i++) { query.SetString(string.Format("texto{0}", i), string.Format("%{0}%", textKeyWord[i])); } } results = query.List <Category>(); if (Equals(results, null) || results.Count.Equals(0)) { Notification.AddNotification("Registro não encontrado!", TypeOfMessage.Error); } return(results); }