void AddFilterOfTypeCallback(object type) { Undo.RecordObject(m_compositionManager, "Add input filter"); m_compositionManager.AddInputFilterAtLayer(CompositionFilter.Create((CompositionFilter.FilterType)type), m_layerList.index); m_SerializedProperties.layerList.serializedObject.Update(); CacheSerializedObjects(); }
public IEnumerable <Composition> ApplyFilter(CompositionFilter filter) { var queryString = CreateQueryString(filter); var compositions = new List <Composition>(); using (var connection = new OracleConnection(_oracleHelper.Connection)) { var command = new OracleCommand(queryString, connection); connection.Open(); using (var reader = command.ExecuteReader()) { while (reader.Read()) { compositions.Add(new Composition { Id = reader.GetInt32(0), Title = reader.GetString(1), Annotation = reader.GetString(2) }); } } } return(compositions); }
private string CreateQueryString(CompositionFilter filter) { StringBuilder sb = new StringBuilder(); sb.Append($"select distinct kudriavtseva_compositions.* from {Tables[TableName.Compositions]}"); bool isConditiondAdded = false; if (!filter.SelectedTypes.Any() && !filter.SelectedAuthors.Any() && !filter.SelectedLangs.Any() && !filter.SelectedTypes.Any() && string.IsNullOrWhiteSpace(filter.partialTextTitle)) { return(sb.ToString()); } sb.Append($" inner join " + "kudriavtseva_comps_genres on " + "kudriavtseva_comps_genres.composition_id = kudriavtseva_compositions.composition_id " + "inner join " + "kudriavtseva_genres on " + "kudriavtseva_comps_genres.genre_id = kudriavtseva_genres.genre_id " + "inner join " + "kudriavtseva_comps_authors on " + "kudriavtseva_comps_authors.composition_id = kudriavtseva_compositions.composition_id " + "inner join " + "kudriavtseva_authors on kudriavtseva_comps_authors.author_id = " + "kudriavtseva_authors.author_id" ); sb.Append(" where "); if (!string.IsNullOrWhiteSpace(filter.partialTextTitle)) { sb.Append(ApplyPartialTextSearchFilter(filter.partialTextTitle, "title")); isConditiondAdded = true; } if (filter.SelectedGenres.Any()) { sb.Append(ApplyStringIdsFilter(filter.SelectedGenres, "kudriavtseva_comps_genres.genre_id", isConditiondAdded)); isConditiondAdded = true; } if (filter.SelectedAuthors.Any()) { sb.Append(ApplyStringIdsFilter(filter.SelectedAuthors, "kudriavtseva_comps_authors.author_id", isConditiondAdded)); isConditiondAdded = true; } if (filter.SelectedLangs.Any()) { sb.Append(ApplyStringIdsFilter(filter.SelectedLangs, "language_id", isConditiondAdded)); isConditiondAdded = true; } if (filter.SelectedTypes.Any()) { sb.Append(ApplyStringIdsFilter(filter.SelectedTypes, "type_id", isConditiondAdded)); isConditiondAdded = true; } return(sb.ToString()); }