public ActionResult New(ArtistWikiViewModel artistWikiRequest)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Wiki artistWiki = new Wiki
                    {
                        Description = artistWikiRequest.Description,
                        BirthYear   = artistWikiRequest.BirthYear,
                        BirthMonth  = artistWikiRequest.BirthMonth,
                        BirthDay    = artistWikiRequest.BirthDay,
                        DebutYear   = artistWikiRequest.DebutYear
                    };

                    db.Wikis.Add(artistWiki);
                    Artist artist = new Artist
                    {
                        Name    = artistWikiRequest.Name,
                        Country = artistWikiRequest.Country,
                        Wiki    = artistWiki
                    };
                    db.Artists.Add(artist);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                return(View(artistWikiRequest));
            }
            catch
            {
                return(View(artistWikiRequest));
            }
        }
        public ActionResult Edit(int id, ArtistWikiViewModel artistViewRequest)
        {
            Artist artist = db.Artists.Find(id);
            Wiki   wiki   = db.Wikis.Find(artist.Wiki.WikiId);

            try
            {
                if (ModelState.IsValid)
                {
                    if (TryUpdateModel(artist) && TryUpdateModel(wiki))
                    {
                        artist.Name    = artistViewRequest.Name;
                        artist.Country = artistViewRequest.Country;

                        wiki.Description = artistViewRequest.Description;
                        wiki.BirthYear   = artistViewRequest.BirthYear;
                        wiki.BirthMonth  = artistViewRequest.BirthMonth;
                        wiki.BirthDay    = artistViewRequest.BirthDay;
                        wiki.DebutYear   = artistViewRequest.DebutYear;

                        db.SaveChanges();
                    }
                    return(RedirectToAction("Index"));
                }
                return(View(artistViewRequest));
            }
            catch (Exception)
            {
                return(View(artistViewRequest));
            }
        }
        public ActionResult Edit(int?id)
        {
            if (id.HasValue)
            {
                Artist artist = db.Artists.Find(id);

                if (artist == null)
                {
                    return(HttpNotFound("Couldn't find the artist with id " + id));
                }
                Wiki wiki = db.Wikis.Find(artist.Wiki.WikiId);

                ArtistWikiViewModel artistWiki = new ArtistWikiViewModel
                {
                    Name        = artist.Name,
                    Country     = artist.Country,
                    Description = wiki.Description,
                    BirthYear   = wiki.BirthYear,
                    BirthMonth  = wiki.BirthMonth,
                    BirthDay    = wiki.BirthDay,
                    DebutYear   = wiki.DebutYear
                };
                return(View(artistWiki));
            }
            return(HttpNotFound("Missing artist id parameter!"));
        }
        public ActionResult New()
        {
            ArtistWikiViewModel artist = new ArtistWikiViewModel();

            return(View(artist));
        }