/// <summary> /// Verbindet (addiert) beide Conditions /// </summary> /// <param name="cond1"></param> /// <param name="cond2"></param> /// <returns></returns> public static Condition Combine(Condition cond1, Condition cond2) { Condition combinedCondition = new Condition(); foreach (SingleCondition singleCond in cond1) { if (singleCond.Field != Field.None) { // Der letzte braucht eine "AND"-Verknüpfung, damit beide Conditions mit AND verknüpft sind. if (singleCond == cond1[cond1.Count - 1]) { combinedCondition.Add(new SingleCondition(singleCond.Field, singleCond.Operator, singleCond.Value, Logical.And)); } else { combinedCondition.Add(new SingleCondition(singleCond.Field, singleCond.Operator, singleCond.Value, singleCond.Logical)); } } } if (cond2 != null) { foreach (SingleCondition singleCond in cond2) { combinedCondition.Add(new SingleCondition(singleCond.Field, singleCond.Operator, singleCond.Value, singleCond.Logical)); } } return(combinedCondition); }
private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (VisualTreeExtensions.FindParent <DataGridRow>(e.OriginalSource as DependencyObject) != null) { AlbumListItem item = dataGrid.SelectedItem as AlbumListItem; if (item != null) { switch (CurrentViewMode) { case CurrentViewMode.MediumTable: { ChangeViewCommandParameters changeViewParams = new ChangeViewCommandParameters(); changeViewParams.ViewMode = MainControls.CurrentViewMode.AlbumTable; Big3.Hitbase.DataBaseEngine.Condition condition = new Big3.Hitbase.DataBaseEngine.Condition(); condition.Add(new SingleCondition(Field.Medium, Operator.Equal, item.Title)); changeViewParams.Condition = condition; CatalogViewCommands.ChangeView.Execute(changeViewParams, this); break; } } } } }
private void Search() { Big3.Hitbase.DataBaseEngine.Condition sel = new Big3.Hitbase.DataBaseEngine.Condition(); // Diese Sachen direkt speichern, wenn einmal gesucht wurde. Settings.SetValue("LinkSameNumber", checkBoxSameTrackCount.IsChecked == true ? (int)1 : (int)0); Settings.SetValue("LinkNotLinked", checkBoxNotAssigned.IsChecked == true ? (int)1 : (int)0); // Nur CDs. sel.Add(Field.AlbumType, Operator.Equal, 0); if (this.checkBoxNotAssigned.IsChecked == true) { sel.Add(Field.Identity, Operator.Empty, 0); } if (this.checkBoxSameTrackCount.IsChecked == true) { sel.Add(Field.NumberOfTracks, Operator.Equal, cdInDrive.NumberOfTracks); } if (textBoxArtist.Text != "") { sel.Add(Field.ArtistCDName, Operator.Contains, textBoxArtist.Text); } if (textBoxTitle.Text != "") { sel.Add(Field.Title, Operator.Contains, textBoxTitle.Text); } SortFieldCollection sortKeys = new SortFieldCollection(); sortKeys.Add(Field.ArtistCDName); sortKeys.Add(Field.Title); FieldCollection fc = new FieldCollection(); fc.Add(Field.ArtistCDName); fc.Add(Field.Title); fc.Add(Field.TotalLength); fc.Add(Field.NumberOfTracks); List <CDItemResult> items = new List <CDItemResult>(); using (DataBaseView albumView = AlbumView.CreateView(dataBase, fc, sortKeys, 0, sel)) { object[] values; while ((values = albumView.Read()) != null) { CDItemResult newItem = new CDItemResult(); newItem.CDID = (int)values[0]; newItem.Artist = (string)values[1]; newItem.Title = values[2] is DBNull ? "" : (string)values[2]; newItem.Length = (int)values[3]; newItem.NumberOfTracks = (int)values[4]; items.Add(newItem); } } DataGridResult.ItemsSource = items; return; }