Exemple #1
0
        public PlaylistBaseViewModel PlaylistEdit(PlaylistEditTracksViewModel playlist)
        {
            var o = ds.Playlists.Include("Tracks")
                    .SingleOrDefault(e => e.PlaylistId == playlist.PlaylistId);

            if (o == null)
            {
                // Problem - object was not found, so return
                return(null);
            }
            else
            {
                // Update the object with the incoming values

                // First, clear out the existing collection
                o.Tracks.Clear();

                // Then, go through the incoming items
                // For each one, add to the fetched object's collection
                foreach (var item in playlist.TrackIds)
                {
                    var a = ds.Tracks.Find(item);
                    o.Tracks.Add(a);
                }
                // Save changes
                ds.SaveChanges();

                return(mapper.Map <Playlist, PlaylistBaseViewModel>(o));
            }
        }
Exemple #2
0
        public PlaylistWithDetailViewModel PlaylistEditTracks(PlaylistEditTracksViewModel newItem)
        {
            var obj = ds.Playlists.Include("Tracks").SingleOrDefault(t => t.PlaylistId == newItem.PlaylistId);

            if (obj == null)
            {
                return(null);
            }
            else
            {
                // update values except identifiers and navigation properties
                ds.Entry(obj).CurrentValues.SetValues(newItem);

                // update navigation properties
                obj.Tracks.Clear();
                foreach (var trackId in newItem.TrackIds)
                {
                    var t = ds.Tracks.Find(trackId);
                    obj.Tracks.Add(t);
                }

                ds.SaveChanges();

                return(mapper.Map <Playlist, PlaylistWithDetailViewModel>(obj));
            }
        }
Exemple #3
0
        public ActionResult Edit(int?id, PlaylistEditTracksViewModel newItem)
        {
            // Validate the input
            if (!ModelState.IsValid)
            {
                // Our "version 1" approach is to display the "edit form" again
                return(RedirectToAction("Edit", new { id = newItem.PlaylistId }));
            }

            if (id.GetValueOrDefault() != newItem.PlaylistId)
            {
                // This appears to be data tampering, so redirect the user away
                return(RedirectToAction("Index"));
            }

            // Attempt to do the update
            var editedItem = m.PlaylistEdit(newItem);

            if (editedItem == null)
            {
                //if there is a problem, go to the edit page
                return(RedirectToAction("Edit", new { id = newItem.PlaylistId }));
            }
            else
            {
                // Show the details view, which will have the updated data
                return(RedirectToAction("Details", new { id = newItem.PlaylistId }));
            }
        }
        public ActionResult Edit(int?id, PlaylistEditTracksViewModel newItem)
        {
            // Validate the input
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("edit", new { id = newItem.PlaylistId }));
            }

            if (id.GetValueOrDefault() != newItem.PlaylistId)
            {
                return(RedirectToAction("index"));
            }

            var editedItem = m.PlaylistEditTracks(newItem);

            if (editedItem == null)
            {
                return(RedirectToAction("edit", new { id = newItem.PlaylistId }));
            }
            else
            {
                return(RedirectToAction("details", new { id = newItem.PlaylistId }));
            }
        }