Beispiel #1
0
        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();
            }
        }
Beispiel #3
0
        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();
            }
        }