public ActionResult Edit(ArtistEditViewModel viewModel)
        {
            var model = viewModel.EditedArtist;

            // Note: name is allowed to be whitespace, but not empty.
            if (model.Names.All(n => string.IsNullOrEmpty(n.Value))) {
                ModelState.AddModelError("Names", Model.Resources.ArtistValidationErrors.UnspecifiedNames);
            }

            var coverPicUpload = Request.Files["pictureUpload"];
            var pictureData = ParsePicture(coverPicUpload, "Picture");

            ParseAdditionalPictures(coverPicUpload, model.Pictures);

            try {
                viewModel.CheckModel();
            } catch (InvalidFormException x) {
                AddFormSubmissionError(x.Message);
            }

            if (!ModelState.IsValid) {
                return View("Edit", new ArtistEditViewModel(Service.GetArtist(model.Id), PermissionContext, model));
            }

            queries.Update(model, pictureData, LoginManager);

            return RedirectToAction("Details", new { id = model.Id });
        }
        public ActionResult Edit(int id = invalidId)
        {
            if (id == invalidId)
                return NoId();

            CheckConcurrentEdit(EntryType.Artist, id);

            var model = new ArtistEditViewModel(Service.GetArtist(id), PermissionContext);
            return View(model);
        }