Example #1
0
        public ActionResult AddAlbum(int?id)
        {
            // Attempt to get the associated object
            var a = m.ArtistGetByIdWithDetail(id.GetValueOrDefault());

            if (a == null)
            {
                return(HttpNotFound());
            }
            else
            {
                // Prepare the form
                var form = new AlbumAddForm();

                // Artist name
                form.ArtistName = a.Name;

                // Attention 12 - Prepare all the select item lists

                // Genre list
                form.GenreList = new SelectList(m.GenreGetAll(), dataValueField: "Name", dataTextField: "Name");

                // Collection of one int identifier
                // TODO fix this
                //var selectedValues = new List<int> { a.Id };

                // Artist list
                form.ArtistList = new MultiSelectList(
                    items: m.ArtistGetAll(),
                    dataValueField: "Id",
                    dataTextField: "Name",
                    selectedValues: new List <int> {
                    a.Id
                });

                // Track list
                form.TrackList = new MultiSelectList(
                    items: m.TrackGetAllByArtistId(a.Id),
                    dataValueField: "Id",
                    dataTextField: "Name");

                // Attention 13 - Study the view code too

                return(View(form));
            }
        }
        public ActionResult Create(int?id)
        {
            // Attempt to fetch the matching object
            var a = m.ArtistGetById(id.GetValueOrDefault());

            if (a == null)
            {
                return(HttpNotFound());
            }
            else
            {
                ViewBag.ArtistName = a.Name;
                ViewBag.ArtistId   = a.Id;

                var form            = new AlbumAddForm();
                var artistsSelected = new List <int> {
                    a.Id
                };

                form.ArtistList = new MultiSelectList
                                      (items: m.ArtistGetAll(),
                                      dataValueField: "Id",
                                      dataTextField: "Name",
                                      selectedValues: artistsSelected,
                                      disabledValues: artistsSelected);

                form.TrackList = new MultiSelectList
                                     (items: m.TrackGetAll(),
                                     dataValueField: "Id",
                                     dataTextField: "Name");

                form.GenreList = new SelectList
                                     (items: m.GenreGetAll(),
                                     dataValueField: "Name",
                                     dataTextField: "Name");

                return(View(form));
            }
        }