private void LoadColumnConfiguration() { string columns = (string)Configuration.Settings.GetValue("MyMusicDetailsColumns", ""); if (string.IsNullOrEmpty(columns)) { return; } string[] columnWidths = columns.Split(','); if (columnWidths.Length == 6) { AlbumColumnWidth = Misc.Atoi(columnWidths[0]); NumberColumnWidth = Misc.Atoi(columnWidths[1]); TitleColumnWidth = Misc.Atoi(columnWidths[2]); LengthColumnWidth = Misc.Atoi(columnWidths[3]); RatingColumnWidth = Misc.Atoi(columnWidths[4]); ComposerColumnWidth = Misc.Atoi(columnWidths[5]); GridHeader.ColumnDefinitions[0].Width = new GridLength(AlbumColumnWidth + 70, GridUnitType.Pixel); GridHeader.ColumnDefinitions[1].Width = new GridLength(NumberColumnWidth, GridUnitType.Pixel); GridHeader.ColumnDefinitions[2].Width = new GridLength(TitleColumnWidth, GridUnitType.Pixel); GridHeader.ColumnDefinitions[3].Width = new GridLength(LengthColumnWidth, GridUnitType.Pixel); GridHeader.ColumnDefinitions[4].Width = new GridLength(RatingColumnWidth, GridUnitType.Pixel); GridHeader.ColumnDefinitions[5].Width = new GridLength(ComposerColumnWidth, GridUnitType.Pixel); } }
private void ButtonOK_Click(object sender, RoutedEventArgs e) { Seconds = Misc.Atoi(textBoxSeconds.Text); if (OKClicked != null) { OKClicked(this, new EventArgs()); } }
private void buttonOK_Click(object sender, EventArgs e) { participant.Role = comboBoxRole.Text; participant.Name = comboBoxName.Text; participant.TrackNumber = Misc.Atoi(textBoxTrack.Text); participant.Comment = textBoxComment.Text; }
private int GetTotalLength() { int ret; StringBuilder retValue = new StringBuilder(200); ret = mciSendString("status " + deviceName + " length", retValue, 200, IntPtr.Zero); return(Misc.Atoi(retValue.ToString())); }
private int GetNumberOfTracks() { int ret; StringBuilder retValue = new StringBuilder(200); ret = mciSendString("status " + deviceName + " number of tracks", retValue, 200, IntPtr.Zero); return(Misc.Atoi(retValue.ToString())); }
private int GetTrackPosition(int i) { int ret; StringBuilder retValue = new StringBuilder(200); ret = mciSendString("status " + deviceName + " position track " + (i + 1).ToString(), retValue, 200, IntPtr.Zero); return(Misc.Atoi(retValue.ToString())); }
public int GetTrackLength(int track) { int ret; StringBuilder retValue = new StringBuilder(200); ret = mciSendString("status " + deviceName + " length track " + (track + 1).ToString(), retValue, 200, IntPtr.Zero); return(Misc.Atoi(retValue.ToString())); }
private void ButtonOK_Click(object sender, RoutedEventArgs e) { participant.Role = ComboBoxRole.Text; participant.Name = ComboBoxName.Text; participant.TrackNumber = Misc.Atoi(TextBoxTrack.Text); participant.Comment = TextBoxComment.Text; this.DialogResult = true; this.Close(); }
public void SetValue(int fieldNumber, string value) { if (contentControl[fieldNumber] != null) { switch (userFields[fieldNumber].Type) { case UserFieldType.Number: ((TextBox)contentControl[fieldNumber]).Text = value; break; case UserFieldType.Boolean: if (UsedAsFilter) { if (value == "0") { ((ComboBox)contentControl[fieldNumber]).SelectedIndex = 1; } if (value == "1" || value != null && value.ToLower() == "ja") { ((ComboBox)contentControl[fieldNumber]).SelectedIndex = 2; } } else { if (value == "1" || value != null && value.ToLower() == "ja") { ((CheckBox)contentControl[fieldNumber]).Checked = true; } if (value == "0") { ((CheckBox)contentControl[fieldNumber]).Checked = false; } } break; case UserFieldType.Currency: if (!string.IsNullOrEmpty(value)) { ((TextBoxCurrency)contentControl[fieldNumber]).Value = Misc.Atoi(value); } break; case UserFieldType.Date: ((TextBoxDate)contentControl[fieldNumber]).Value = value; break; default: contentControl[fieldNumber].Text = value; break; } } }
int IComparer.Compare(object X, object Y) { int result = 0; int columnIndex = 0; foreach (DataGridSortColumn sortItem in columnSortDirections) { // Erst Spalte abziehen columnIndex = sortItem.Index - 1; MyMusicListItem albumItem1 = (MyMusicListItem)X; MyMusicListItem albumItem2 = (MyMusicListItem)Y; if (albumItem1.Items[columnIndex] is Int32) { int val1 = albumItem1.Items[columnIndex] is DBNull ? 0 : (int)albumItem1.Items[columnIndex]; int val2 = albumItem2.Items[columnIndex] is DBNull ? 0 : (int)albumItem2.Items[columnIndex]; result = Int32Compare(val1, val2, sortItem.SortDirection); } else if (IsDateField(Fields[columnIndex].Field)) { DateTime val1 = albumItem1.Items[columnIndex] is DBNull ? DateTime.MinValue : (DateTime)albumItem1.Items[columnIndex]; DateTime val2 = albumItem2.Items[columnIndex] is DBNull ? DateTime.MinValue : (DateTime)albumItem2.Items[columnIndex]; result = DateTimeCompare(val1, val2, sortItem.SortDirection); } else if (Fields[columnIndex].Field == Field.ArchiveNumber && Settings.Current.SortArchiveNumberNumeric) { int val1 = albumItem1.Items[columnIndex] is DBNull ? 0 : Misc.Atoi((string)albumItem1.Items[columnIndex]); int val2 = albumItem2.Items[columnIndex] is DBNull ? 0 : Misc.Atoi((string)albumItem2.Items[columnIndex]); result = Int32Compare(val1, val2, sortItem.SortDirection); } else { string str1 = albumItem1.Items[columnIndex].ToString(); string str2 = albumItem2.Items[columnIndex].ToString(); result = StringCompare(str1, str2, sortItem.SortDirection); } if (result != 0) { return(result); } } return(result); }
public void SetPlayPositionMS(int position) { int ret; StringBuilder retValue = new StringBuilder(200); ret = mciSendString("status " + deviceName + " position", retValue, 200, IntPtr.Zero); int totalPosition = Misc.Atoi(retValue.ToString()); int trackNumber = GetTrackNumberByPosition(totalPosition); Play(this.CDInfo.Tracks[trackNumber].StartTime + position, 0); }
public void SetField(Field field, string newValue) { switch (field) { case Field.ArtistCDName: AlbumArtist = newValue; break; case Field.ArtistTrackName: Artist = newValue; break; case Field.ComposerTrackName: Composer = newValue; break; case Field.TrackTitle: Title = newValue; break; case Field.Title: Album = newValue; break; case Field.TrackCategory: Genre = newValue; break; case Field.TrackNumber: TrackNumber = Misc.Atoi(newValue); break; case Field.TrackYearRecorded: Year = Misc.Atoi(newValue); break; case Field.TrackComment: Comment = newValue; break; case Field.TrackRating: Rating = Misc.Atoi(newValue); break; } }
private List <ChartValue> StatisticArtistGroupBySexCount() { List <ChartValue> chartValues = this.StatisticSqlGeneral("SELECT Count(1) AS Anzahl, PersonGroup.Sex As ColName " + "FROM PersonGroup " + "GROUP BY PersonGroup.Sex;", false); foreach (ChartValue chartValue in chartValues) { if (string.IsNullOrEmpty(chartValue.Name)) { chartValue.Name = StringTable.Undefined; } else { chartValue.Name = DataBase.GetNameOfPersonGroupSex((SexType)Misc.Atoi(chartValue.Name)); } } return(chartValues); }
public int GetPlayPositionMS() { int ret; StringBuilder retValue = new StringBuilder(200); ret = mciSendString("status " + deviceName + " position", retValue, 200, IntPtr.Zero); if (ret != 0) { return(0); } int totalPosition = Misc.Atoi(retValue.ToString()); int trackNumber = GetTrackNumberByPosition(totalPosition); int trackPosition = totalPosition - this.CDInfo.Tracks[trackNumber].StartTime; return(trackPosition); }
private void GetTrack() { if (CD == null || ReadOnly) { return; } Track track = CD.Tracks[CurrentTrack]; track.Artist = textBoxArtistTrack.Text; track.Title = textBoxTitleTrack.Text; track.Composer = textBoxComposerTrack.Text; track.Codes = textBoxCodesTrack.Text; if (comboBoxCategoryTrack.SelectedItem != null) { track.Category = comboBoxCategoryTrack.SelectedItem.ToString(); } else { track.Category = ""; } track.Length = Misc.ParseTimeString(textBoxLengthTrack.Text); track.Language = comboBoxLanguageTrack.Text; track.Bpm = (int)numericUpDownBpmTrack.Value; track.YearRecorded = Misc.Atoi(textBoxYearRecordedTrack.Text); track.Comment = textBoxCommentTrack.Text; track.Soundfile = textBoxSoundfileTrack.Text; track.Rating = ratingControlTrack.Value; track.Lyrics = textBoxLyricsTrack.Text; track.UserField1 = userFieldsTrack.GetValue(0); track.UserField2 = userFieldsTrack.GetValue(1); track.UserField3 = userFieldsTrack.GetValue(2); track.UserField4 = userFieldsTrack.GetValue(3); track.UserField5 = userFieldsTrack.GetValue(4); }
private List <ChartValue> StatisticArtistTrackGroupByArtistArtCount() { List <ChartValue> chartValues = this.StatisticSqlGeneral("SELECT Count(1) AS Anzahl, PersonGroup.Type As ColName " + "FROM PersonGroup, Track " + "WHERE (((PersonGroup.PersonGroupID)=[Track].[ArtistID])) " + "GROUP BY PersonGroup.Type;", false); foreach (ChartValue chartValue in chartValues) { if (string.IsNullOrEmpty(chartValue.Name)) { chartValue.Name = StringTable.Undefined; } else { chartValue.Name = DataBase.GetNameOfPersonGroupType((PersonGroupType)Misc.Atoi(chartValue.Name)); } } return(chartValues); }
public static SoundFileInformation GetSoundFileInformation(string filename) { SoundFileInformation sfInfo = new SoundFileInformation(); try { if (string.IsNullOrEmpty(filename) || !File.Exists(filename)) { return(sfInfo); } ID3Info id3Info = new ID3Info(filename, true); int id3Version = Settings.Current.UseID3Version; if (id3Info.ID3v1Info != null && id3Info.ID3v1Info.HaveTag && id3Version != 1) { sfInfo.Artist = id3Info.ID3v1Info.Artist.Trim(); sfInfo.Title = id3Info.ID3v1Info.Title.Trim(); sfInfo.Comment = id3Info.ID3v1Info.Comment.Trim(); sfInfo.Album = id3Info.ID3v1Info.Album.Trim(); sfInfo.Year = id3Info.ID3v1Info.Year.Trim(); sfInfo.Genre = MapID3GenreToHitbaseGenre(id3Info.ID3v1Info.Genre); sfInfo.TrackNumber = id3Info.ID3v1Info.TrackNumber; sfInfo.ID3Version = 1; } if (id3Info.ID3v2Info != null && id3Info.ID3v2Info.HaveTag && id3Version != 0) { sfInfo.Artist = id3Info.ID3v2Info.GetTextFrame("TPE1").Trim(); sfInfo.Title = id3Info.ID3v2Info.GetTextFrame("TIT2").Trim(); sfInfo.Comment = id3Info.ID3v2Info.GetTextFrame("COMM").Trim(); sfInfo.Album = id3Info.ID3v2Info.GetTextFrame("TALB").Trim(); sfInfo.Year = id3Info.ID3v2Info.GetTextFrame("TYER").Trim(); String trackNumber = id3Info.ID3v2Info.GetTextFrame("TRCK"); sfInfo.TrackNumber = Misc.Atoi(trackNumber); sfInfo.Genre = id3Info.ID3v2Info.GetTextFrame("TCON").Trim(); sfInfo.Composer = id3Info.ID3v2Info.GetTextFrame("TCOM").Trim(); sfInfo.Language = id3Info.ID3v2Info.GetTextFrame("TLAN").Trim(); // Das mit dem Rating geht irgendwie anders. Erst mal raus //string rating = id3Info.ID3v2Info.GetTextFrame("POPM").Trim(); //sfInfo.Rating = Misc.Atoi(rating); string bpm = id3Info.ID3v2Info.GetTextFrame("TBPM").Trim(); sfInfo.BPM = Misc.Atoi(bpm); string length = id3Info.ID3v2Info.GetTextFrame("TLEN"); if (Misc.Atoi(length) > 0) { sfInfo.Length = Misc.Atoi(length); } sfInfo.Images = new List <byte[]>(); if (id3Info.ID3v2Info.AttachedPictureFrames.Items.Length > 0) { ID3.ID3v2Frames.BinaryFrames.BinaryFrame binaryFrame = id3Info.ID3v2Info.AttachedPictureFrames.Items[0]; foreach (AttachedPictureFrame apf in id3Info.ID3v2Info.AttachedPictureFrames.Items) { sfInfo.Images.Add(apf.Data.ToArray()); } } sfInfo.ID3Version = 2; } if (sfInfo.Length == 0) { FMOD.Sound sound = null; FMOD.RESULT res = SoundEngine.FMODSystem.createStream(filename, FMOD.MODE.OPENONLY, ref sound); uint length = 0; if (sound != null) { sound.getLength(ref length, FMOD.TIMEUNIT.MS); sound.release(); sfInfo.Length = (int)length; } } } catch { // Zuerst mal hier alle Fehler ignorieren. } return(sfInfo); }
private void FillArtistList() { Cursor.Current = Cursors.WaitCursor; personGroup.PersonGroup.Clear(); personGroupAdapter.Fill(personGroup.PersonGroup); personGroupListBox.Items.Clear(); personGroupTable.TableModel.Rows.Clear(); foreach (PersonGroupDataSet.PersonGroupRow row in personGroup.PersonGroup) { // Leeren Interpreten nicht anzeigen. Kann schon mal angelegt werden. if (string.IsNullOrEmpty(row.Name)) { continue; } if (personGroupListBox.Visible) { try { personGroupListBox.Items.Add(row); } catch { } } else { XPTable.Models.Row newRow = new XPTable.Models.Row(); newRow.Cells.Add(new XPTable.Models.Cell(row.Name)); newRow.Cells.Add(new XPTable.Models.Cell(row.SaveAs)); newRow.Cells.Add(new XPTable.Models.Cell(DataBase.GetNameOfPersonGroupType((PersonGroupType)(row.IsTypeNull() ? 0 : row.Type)))); newRow.Cells.Add(new XPTable.Models.Cell(DataBase.GetNameOfPersonGroupSex((SexType)(row.IsSexNull() ? 0 : row.Sex)))); newRow.Cells.Add(new XPTable.Models.Cell(row.Country)); string date = row.IsBirthDayNull() ? "" : Misc.FormatDate(row.BirthDay); XPTable.Models.Cell cellBirthDay = new XPTable.Models.Cell(date); if (row.IsBirthDayNull()) { cellBirthDay.Data = null; } else { cellBirthDay.Data = Misc.Atoi(row.BirthDay); } newRow.Cells.Add(cellBirthDay); date = row.IsDayOfDeathNull() ? "" : Misc.FormatDate(row.DayOfDeath); XPTable.Models.Cell cellDayOfDeath = new XPTable.Models.Cell(date); if (row.IsDayOfDeathNull()) { cellDayOfDeath.Data = null; } else { cellDayOfDeath.Data = Misc.Atoi(row.DayOfDeath); } newRow.Cells.Add(cellDayOfDeath); newRow.Cells.Add(new XPTable.Models.Cell(row.URL)); XPTable.Models.Cell cellImageFilename = new XPTable.Models.Cell(row.IsImageFilenameNull() ? "" : row.ImageFilename); if (row.IsImageFilenameNull()) { cellImageFilename.Data = null; } else { cellImageFilename.Data = row.ImageFilename; } newRow.Cells.Add(cellImageFilename); newRow.Cells.Add(new XPTable.Models.Cell(row.Comment)); newRow.Cells.Add(new XPTable.Models.Cell("")); newRow.Tag = row; personGroupTable.TableModel.Rows.Add(newRow); } } toolStripLabelCount.Text = String.Format(StringTable.NumberOfPersonsGroups, personGroup.PersonGroup.Count); Cursor.Current = Cursors.Default; if (personGroupListBox.Visible) { //personGroupListBox.Sorted = false; //personGroupListBox.Sorted = true; } }
private void LoadFromFileM3U(string filename) { string[] allLines = File.ReadAllLines(filename, Encoding.UTF8); if (allLines[0] != "#EXTM3U") // Das ist eine M3U-datei { return; } ClearAll(); String sM3UPath = Path.GetDirectoryName(filename); String artist = ""; String title = ""; int length = 0; foreach (string sLine in allLines) { if (sLine == "#EXTM3U") // Das ist eine M3U-datei { continue; } if (sLine.Left(1) == "#") { if (sLine.Left(8) == "#EXTINF:") { String str = sLine.Mid(8); length = Misc.Atoi(str) * 1000; int iPos = str.IndexOf(","); if (iPos >= 0) { int hyphenLength = 3; str = str.Mid(iPos + 1); iPos = str.IndexOf(" - "); if (iPos < 0) { iPos = str.IndexOf("-"); hyphenLength = 1; } if (iPos > 0) { artist = str.Left(iPos); artist.Trim(); title = str.Mid(iPos + hyphenLength); title.Trim(); } } } } else { //String sAbsFilename; String sPath = Path.Combine(sM3UPath, sLine); //PathCanonicalize(sAbsFilename.GetBuffer(_MAX_PATH), sPath); //sAbsFilename.ReleaseBuffer(); AddTrack(sPath, length, artist, title); // Damit die Animation schöner aussieht, hier eine kleine Verzögerung. Kann man // eventuell noch verbessern, indem man das Pause nur für die sichtbaren Elemente macht. System.Threading.Thread.Sleep(10); } } }
void SearchCDArchiveLocal(CDArchiveConfig cdArchiveConfig) { int maxCount = 100; // Z.zt. fest String filename = cdArchiveConfig.ArchiveName; if (string.IsNullOrEmpty(filename)) { MessageBox.Show(StringTable.NoCDArchiveDefined, System.Windows.Forms.Application.ProductName, MessageBoxButton.OK, MessageBoxImage.Information); return; } String filter = ""; string artist = ""; string title = ""; string upc = ""; string numberOfTracks = ""; Dispatcher.Invoke((Action)(() => { artist = this.TextBoxArtist.Text; title = this.TextBoxTitle.Text; upc = this.TextBoxUPC.Text; numberOfTracks = this.TextBoxNumberOfTracks.Text; })); if (!string.IsNullOrEmpty(artist)) { filter += "sArtist like '%" + artist + "%'"; } if (!string.IsNullOrEmpty(title)) { if (!string.IsNullOrEmpty(filter)) { filter += " AND "; } filter += "sTitle like '%" + title + "%'"; } if (!string.IsNullOrEmpty(upc)) { if (!string.IsNullOrEmpty(filter)) { filter += " AND "; } filter += "sUPC='" + upc + "'"; } if (Misc.Atoi(numberOfTracks) != 0) { if (!string.IsNullOrEmpty(filter)) { filter += " AND "; } filter += string.Format("CD.cNumberOfTracks={0}", Misc.Atoi(numberOfTracks)); } if (string.IsNullOrEmpty(filter)) { return; } string sql; sql = string.Format("SELECT * FROM CD INNER JOIN Artist ON CD.IDArtist = Artist.ID WHERE {0} ORDER BY Artist.sArtist, CD.sTitle", filter); List <CDItemResult> cdList = new List <CDItemResult>(); int iCount = 0; using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + filename + "'")) { conn.Open(); System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sql, conn); using (System.Data.OleDb.OleDbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { CDItemResult newItem = new CDItemResult(); newItem.Identity = (string)reader["sIdentity"]; newItem.Artist = (string)reader["sArtist"]; newItem.Title = (string)reader["sTitle"]; newItem.Length = (int)reader["dwTotalLength"]; newItem.NumberOfTracks = (int)(byte)reader["cNumberOfTracks"]; cdList.Add(newItem); iCount++; } } } Dispatcher.Invoke((Action)(() => { DataGridResult.ItemsSource = cdList; String strResult; strResult = string.Format("{0} {1}", iCount, StringTable.CDsFound); TextBlockStatus.Text = strResult; })); }
public TrackDataView(DataBase db, CDQueryDataSet cdQuery, Condition condition, SortFieldCollection sortedFields, FieldCollection fields) { // Zunächst die Spalten definieren for (int col = 0; col < fields.Count; col++) { AddField(db, fields[col]); } if (sortedFields != null) { for (int col = 0; col < sortedFields.Count; col++) { Field field = GetRealSortField(sortedFields[col].Field); AddField(db, field); } } if (condition != null) { // Jetzt noch die Spalten für die Condition definieren for (int col = 0; col < condition.Count; col++) { if (!fieldsValueDictionary.ContainsKey(condition[col].Field)) { AddField(db, condition[col].Field); } } } // Für die ID des Tracks auch noch eine Spalte vorsehen DataColumn dc = new DataColumn(); dc.Caption = "TrackID"; dc.DataType = typeof(int); dataTable.Columns.Add(dc); TrackIDColumnName = dc.ColumnName; fieldsValueDictionary.Add(Field.TrackID, TrackIDColumnName); fieldsStringDictionary.Add(Field.TrackID, TrackIDColumnName); // Für die ID der CD auch noch eine Spalte vorsehen DataColumn dcCD = new DataColumn(); dcCD.Caption = "CDID"; dcCD.DataType = typeof(int); dataTable.Columns.Add(dcCD); CDIDColumnName = dcCD.ColumnName; fieldsValueDictionary.Add(Field.CDID, CDIDColumnName); fieldsStringDictionary.Add(Field.CDID, CDIDColumnName); // Für die ID des Interpreten auch noch eine Spalte vorsehen DataColumn dcArtist = new DataColumn(); dcArtist.Caption = "ArtistID"; dcArtist.DataType = typeof(int); dataTable.Columns.Add(dcArtist); ArtistIDColumnName = dcArtist.ColumnName; // Für die ID des CD-Interpreten auch noch eine Spalte vorsehen DataColumn dcCDArtist = new DataColumn(); dcCDArtist.Caption = "ArtistCDID"; dcCDArtist.DataType = typeof(int); dataTable.Columns.Add(dcCDArtist); ArtistCDIDColumnName = dcCDArtist.ColumnName; // Alle Inhalte füllen for (int i = 0; i < cdQuery.Track.Count; i++) { object[] values = new object[fieldsToRead.Count * 2 + 4]; int colCount = 0; for (int col = 0; col < fieldsToRead.Count; col++) { object rawValue = cdQuery.Track[i].GetValueByField(db, fieldsToRead[col]); string stringValue = CDQueryDataSet.TrackRow.GetStringByValue(db, fieldsToRead[col], rawValue); values[colCount++] = stringValue; if (Settings.Current.SortArchiveNumberNumeric && fieldsToRead[col] == Field.ArchiveNumber) { rawValue = Misc.Atoi((string)rawValue); } values[colCount++] = rawValue; } values[colCount++] = cdQuery.Track[i].TrackID; values[colCount++] = cdQuery.Track[i].CDID; values[colCount++] = cdQuery.Track[i].ArtistID; values[colCount++] = cdQuery.Track[i].CDRow.ArtistID; dataTable.Rows.Add(values); } // Sortierung definieren string sortString = ""; foreach (SortField sortField in sortedFields) { Field field = GetRealSortField(sortField.Field); if (fieldsStringDictionary.ContainsKey(field)) { if (!string.IsNullOrEmpty(sortString)) { sortString += ", "; } // Bei einigen Feldern wird nach Wert sortiert, bei den meisten nach der String-Repräsentation if (SortFieldByValue(db, field)) { sortString += fieldsValueDictionary[field]; } else { sortString += fieldsStringDictionary[field]; } if (sortField.SortDirection == SortDirection.Descending) { sortString += " DESC"; } } } dataTable.DefaultView.Sort = sortString; if (condition != null) { string filterString = ""; // Filter definieren foreach (SingleCondition cond in condition) { if (!string.IsNullOrEmpty(filterString)) { if (cond.Logical == Logical.Or) { filterString += " OR "; } else { filterString += " AND "; } } if (fieldsStringDictionary.ContainsKey(cond.Field)) { if (DataBase.GetTypeByField(cond.Field) == typeof(string)) { if (cond.Field != Field.Date && cond.Field != Field.ArchiveNumber) { filterString += fieldsStringDictionary[cond.Field]; } else { filterString += fieldsValueDictionary[cond.Field]; } filterString += " " + Condition.GetNameOfOperatorForFilter(cond.Operator) + " "; string val = cond.Value.ToString(); val = val.Replace("'", "''"); if (cond.Operator == Operator.Contains || cond.Operator == Operator.NotContains) { filterString += "'%" + val + "%'"; } else { if (cond.Operator == Operator.StartsWith) { filterString += "'" + val + "%'"; } else { filterString += "'" + val + "'"; } } } else { filterString += fieldsValueDictionary[cond.Field]; filterString += " " + Condition.GetNameOfOperatorForFilter(cond.Operator) + " "; filterString += cond.Value.ToString(); } } } dataTable.DefaultView.RowFilter = filterString; } resultDataTable = dataTable.DefaultView.ToTable(); }
private static string GetSqlCondition(DataBase db, Condition condition) { string stringCondition = ""; int index = 0; Logical lastLogical = Logical.None; foreach (SingleCondition singleCondition in condition) { if (singleCondition.Field == Field.None) { continue; } string columnField = GetColumn(db, singleCondition.Field); string opName = Condition.GetNameOfOperatorForFilter(singleCondition.Operator); string singleCondString = columnField + " " + opName + " "; bool conditionValid = false; if (singleCondition.Operator != Operator.NotEmpty && singleCondition.Operator != Operator.Empty) { if (DataBase.GetTypeByField(singleCondition.Field) == typeof(string)) { string val = ""; if (singleCondition.Value != null) { val = singleCondition.Value.ToString(); if (singleCondition.Field == Field.Date) { val = db.ParseDate(val); } } val = val.Replace("'", "''"); if (singleCondition.Operator == Operator.Contains || singleCondition.Operator == Operator.NotContains) { singleCondString += "'%" + val + "%'"; } else { if (singleCondition.Operator == Operator.StartsWith) { singleCondString += "'" + val + "%'"; } else { singleCondString += "'" + val + "'"; } } conditionValid = true; } else { if (singleCondition.Value != null) { if (DataBase.GetTypeByField(singleCondition.Field) == typeof(int)) { if (singleCondition.Value is string && (singleCondition.Field == Field.TotalLength || singleCondition.Field == Field.TrackLength)) { singleCondString += Misc.ParseTimeString(singleCondition.Value.ToString()).ToString(); } else { singleCondString += Misc.Atoi(singleCondition.Value.ToString()).ToString(); } conditionValid = true; } else if (DataBase.GetTypeByField(singleCondition.Field) == typeof(bool)) { int intValue = 0; if (Int32.TryParse(singleCondition.Value.ToString(), out intValue)) { // Bei bool-Feldern nur nach 0 und 1 suchen können if (intValue == 0 || intValue == 1) { singleCondString += intValue.ToString(); conditionValid = true; } } } else { singleCondString += singleCondition.Value.ToString(); conditionValid = true; } } } } else { if (singleCondition.Operator == Operator.Empty) { singleCondString = string.Format("({0} IS NULL OR {0}='')", columnField); conditionValid = true; } if (singleCondition.Operator == Operator.NotEmpty) { singleCondString = string.Format("({0} IS NOT NULL AND {0}<>'')", columnField); conditionValid = true; } } if (conditionValid) { if (index > 0) { if (lastLogical == Logical.Or) { stringCondition += " OR "; } else { stringCondition += " AND "; } } stringCondition += singleCondString; } lastLogical = singleCondition.Logical; index++; } return(stringCondition); }
void SearchCDArchive(CDArchiveConfig cdArchiveConfig) { String sURL = ""; int iMaxCount = 100; // Z.zt. fest Dispatcher.Invoke((Action)(() => { if (Misc.Atoi(TextBoxNumberOfTracks.Text) > 0) { sURL = string.Format("cdquery_browse.asp?User=hitbase&Password=hitbase2k&Artist={0}&Title={1}&UPC={2}&NumberOfTracks={3}&MaxCount={4}", TextBoxArtist.Text, TextBoxTitle.Text, TextBoxUPC.Text, Misc.Atoi(TextBoxNumberOfTracks.Text), iMaxCount); } else { sURL = string.Format("cdquery_browse.asp?User=hitbase&Password=hitbase2k&Artist={0}&Title={1}&UPC={2}&MaxCount={3}", TextBoxArtist.Text, TextBoxTitle.Text, TextBoxUPC.Text, iMaxCount); } })); WebClient wc = new WebClient(); wc.UseDefaultCredentials = true; wc.Proxy.Credentials = CredentialCache.DefaultCredentials; wc.Encoding = Encoding.UTF8; string content = wc.DownloadString("http://" + cdArchiveConfig.ArchiveName + "/" + sURL); content = content.Replace("\r", ""); string[] saLines; saLines = content.Split('\n'); //!!!!!!!!! Versionsnummer abfragen List <CDItemResult> cdList = new List <CDItemResult>(); bool bError = false; int iLine = 1; int iCount = 0; while (iLine < saLines.Length) { String sValueID = ""; String sValueArtist = ""; String sValueTitle = ""; String sValueTotalLength = ""; String sValueNumberOfTracks = ""; if (iLine >= saLines.Length || !GetValue(saLines[iLine++], "ID", ref sValueID)) { bError = true; break; } if (iLine >= saLines.Length || !GetValue(saLines[iLine++], "Artist", ref sValueArtist)) { bError = true; break; } if (iLine >= saLines.Length || !GetValue(saLines[iLine++], "Title", ref sValueTitle)) { bError = true; break; } if (iLine >= saLines.Length || !GetValue(saLines[iLine++], "TotalLength", ref sValueTotalLength)) { bError = true; break; } if (iLine >= saLines.Length || !GetValue(saLines[iLine++], "NumberOfTracks", ref sValueNumberOfTracks)) { bError = true; break; } CDItemResult newItem = new CDItemResult(); newItem.Identity = sValueID; newItem.Artist = sValueArtist; newItem.Title = sValueTitle; newItem.Length = Misc.Atoi(sValueTotalLength); newItem.NumberOfTracks = Misc.Atoi(sValueNumberOfTracks); cdList.Add(newItem); iCount++; } Dispatcher.Invoke((Action)(() => { DataGridResult.ItemsSource = cdList; String strResult; strResult = string.Format("{0} {1}", iCount, StringTable.CDsFound); TextBlockStatus.Text = strResult; })); }
private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { DataGridRow row = VisualTreeExtensions.FindParent <DataGridRow>(e.OriginalSource as DependencyObject); if (row == null) { return; } switch (CurrentViewMode) { case MainControls.CurrentViewMode.ArtistTable: case MainControls.CurrentViewMode.ComposerTable: { OpenSelectedPersonGroup(); break; } case MainControls.CurrentViewMode.YearTable: { TrackListItem tli = dataGrid.SelectedItem as TrackListItem; int year = Misc.Atoi(tli.Title); AddViewCommandParameters addViewParams = new AddViewCommandParameters(); addViewParams.Condition = new DataBaseEngine.Condition(); addViewParams.Condition.Add(new SingleCondition() { Field = Field.TrackYearRecorded, Operator = Operator.Equal, Value = year, Logical = Logical.Or }); addViewParams.Condition.Add(new SingleCondition() { Field = Field.YearRecorded, Operator = Operator.Equal, Value = year }); addViewParams.ImageResourceString = "Calendar.png"; addViewParams.Title = tli.Title; addViewParams.ViewMode = MainControls.CurrentViewMode.MyMusicDetails; CatalogViewCommands.AddView.Execute(addViewParams, Application.Current.MainWindow); e.Handled = true; break; } case MainControls.CurrentViewMode.RatingTable: { TrackListItem tli = dataGrid.SelectedItem as TrackListItem; int rating = Misc.Atoi(tli.Title); AddViewCommandParameters addViewParams = new AddViewCommandParameters(); addViewParams.Condition = new DataBaseEngine.Condition(); addViewParams.Condition.Add(new SingleCondition() { Field = Field.TrackRating, Operator = Operator.Equal, Value = rating }); addViewParams.ImageResourceString = "Star.png"; addViewParams.Title = tli.Title; addViewParams.ViewMode = MainControls.CurrentViewMode.MyMusicDetails; CatalogViewCommands.AddView.Execute(addViewParams, Application.Current.MainWindow); e.Handled = true; break; } case MainControls.CurrentViewMode.GenreTable: { TrackListItem tli = dataGrid.SelectedItem as TrackListItem; string genre = tli.Title; AddViewCommandParameters addViewParams = new AddViewCommandParameters(); addViewParams.Condition = new DataBaseEngine.Condition(); addViewParams.Condition.Add(new SingleCondition(Field.Category, Operator.Equal, genre, Logical.Or)); addViewParams.Condition.Add(new SingleCondition(Field.TrackCategory, Operator.Equal, genre)); addViewParams.ImageResourceString = "Category.png"; addViewParams.Title = tli.Title; addViewParams.ViewMode = MainControls.CurrentViewMode.MyMusicDetails; CatalogViewCommands.AddView.Execute(addViewParams, Application.Current.MainWindow); e.Handled = true; break; } } } }
public string GetValue(int fieldNumber) { if (contentControl[fieldNumber] != null) { switch (userFields[fieldNumber].Type) { case UserFieldType.Number: { if (!string.IsNullOrEmpty(contentControl[fieldNumber].Text)) { return(Misc.Atoi(contentControl[fieldNumber].Text).ToString()); } else { return(""); } } case UserFieldType.Boolean: if (UsedAsFilter) { switch (((ComboBox)contentControl[fieldNumber]).SelectedIndex) { case 0: return(""); case 1: return("0"); case 2: return("1"); default: return(""); } } else { if (((CheckBox)contentControl[fieldNumber]).Checked) { return("1"); } else { return("0"); } } break; case UserFieldType.Currency: if (((TextBoxCurrency)contentControl[fieldNumber]).Value == 0) { return(""); } else { return(((TextBoxCurrency)contentControl[fieldNumber]).Value.ToString()); } case UserFieldType.Date: return(((TextBoxDate)contentControl[fieldNumber]).Value); default: return(contentControl[fieldNumber].Text); } } return(""); }