public void deleteItem(object item) { if (item == null) { return; } tbl_track track = item as tbl_track; if (track == null) { return; } using (var db = new RadioPlayer()) { foreach (var map in db.tbl_collectionmap.Where(m => m.track_id == track.track_id)) { db.tbl_collectionmap.Remove(map); } db.tbl_track.Remove(db.tbl_track.Where(t => t.track_id == track.track_id).First()); db.SaveChanges(); } }
public void saveChanges() { using (var db = new RadioPlayer()) { var track = new tbl_track(); track.title = _tag.Title; track.subtitle = "N/A"; track.artists = String.Join(",", _tag.AlbumArtists); track.composers = String.Join(",", _tag.Composers); track.bitrate = Convert.ToString(_format.AverageBytesPerSecond * 8); track.publisher = "N/A"; track.parental_advisory = false; track.folder_path = Path.GetDirectoryName(_fileName).Replace(Config.PathToRoot, "").Replace(Config.ServerName, "").TrimStart('\\', '/'); track.file_name = Path.GetFileName(_fileName); track.duration = _totalSeconds; track.tbl_format = db.tbl_format.First(f => f.description == _extension); track.date_recorded = null; track.date_released = null; track.likes = 0; track.dislikes = 0; track.keywords = "N/A"; var lengthStream = System.IO.File.Open(_fileName, FileMode.Open); track.filesize = lengthStream.Length; lengthStream.Dispose(); if (db.tbl_track.Any(t => t.title == track.title)) { var result = MessageBox.Show( $"A track called '{track.title}' already exists, are you sure you want to" + $" continue with adding this track?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question ); if (result == MessageBoxResult.No) { return; } } db.tbl_track.Add(track); // Auto-add it to a collection. var collection = db.tbl_collection.FirstOrDefault(c => c.title.ToLower() == _tag.Album.ToLower()); if (collection == null && !String.IsNullOrWhiteSpace(_tag.Album)) { var result = MessageBox.Show( $"There is no collection called '{_tag.Album}', would you " + $"like to create one for this track?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question ); if (result == MessageBoxResult.Yes) { collection = new tbl_collection(); collection.title = _tag.Album; db.tbl_collection.Add(collection); } } if (collection != null) { var map = new tbl_collectionmap(); map.tbl_collection = collection; map.tbl_track = track; map.sequence_index = 999; db.tbl_collectionmap.Add(map); } db.SaveChanges(); } }
public void saveChanges() { using (var db = new RadioPlayer()) { tbl_track track = null; if (!this._isCreateMode) { var id = Convert.ToInt32(this.txtID.Text); track = db.tbl_track.Where(t => t.track_id == id).FirstOrDefault(); if (track == null) { this._mainInterface.statusText = $"ERROR: ID '{this.txtID.Text}' does not exist."; return; } } else { track = new tbl_track(); } track.title = this.txtTitle.Text; track.subtitle = this.txtSubtitle.Text; track.bitrate = this.txtBitrate.Text; track.publisher = this.txtPublisher.Text; track.parental_advisory = (bool)this.checkboxPAL.IsChecked; track.folder_path = this.txtFolder.Text; track.file_name = this.txtFileName.Text; track.duration = Convert.ToInt32(this.txtDuration.Text); track.format_id = ((tbl_format)this.selectorFormat.item).format_id; track.filesize = Convert.ToInt64(this.txtFileSize.Text); track.date_recorded = this.dateRecorded.SelectedDate; track.date_released = this.dateReleased.SelectedDate; track.likes = Convert.ToInt32(this.txtLikes.Text); track.dislikes = Convert.ToInt32(this.txtDislikes.Text); track.artists = this.stringifyList(this.listArtists); track.composers = this.stringifyList(this.listComposers); track.keywords = this.stringifyList(this.listKeywords); // Sort out the genre mappings. List <tbl_genremap> genresToUnmap; List <tbl_genre> genresToMap; IEditorHelper.getMappings <tbl_genremap, tbl_genre>( out genresToUnmap, out genresToMap, this.listGenres.items.Select(i => i as tbl_genre), track.tbl_genremap, (map, value) => map.genre_id == value.genre_id ); foreach (var toUnmap in genresToUnmap) { db.tbl_genremap.Remove(toUnmap); } foreach (var toMap in genresToMap) { tbl_genremap map = new tbl_genremap(); map.tbl_track = track; map.tbl_genre = toMap; db.tbl_genremap.Add(map); } // Sort out the mood mappings. List <tbl_moodmap> moodsToUnmap; List <tbl_mood> moodsToMap; IEditorHelper.getMappings <tbl_moodmap, tbl_mood>( out moodsToUnmap, out moodsToMap, this.listMoods.items.Select(i => i as tbl_mood), track.tbl_moodmap, (map, value) => map.mood_id == value.mood_id ); foreach (var toUnmap in moodsToUnmap) { db.tbl_moodmap.Remove(toUnmap); } foreach (var toMap in moodsToMap) { tbl_moodmap map = new tbl_moodmap(); map.tbl_track = track; map.tbl_mood = toMap; db.tbl_moodmap.Add(map); } if (this._isCreateMode) { db.tbl_track.Add(track); } db.SaveChanges(); } }