public virtual ActionResult Edit(
            [Bind(Include = "Id, Name, Birthday, Biography, Photo, PostedPhoto")]
            ArtistManagementViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Artist currentArtist;
                using (var repo = this.RepositoryFactory.GetArtistRepository())
                {
                    currentArtist = repo.GetById(viewModel.Id);
                }

                if (currentArtist == null)
                {
                    return(this.HttpNotFound($"Исполнитель с id = {viewModel.Id} не найден"));
                }

                using (var repository = RepositoryFactory.GetArtistRepository())
                {
                    var artist = ManagementMapper.GetArtistModel(viewModel);
                    repository.AddOrUpdate(artist);
                    repository.SaveChanges();
                    return(RedirectToAction("Details", "Artists", new { id = viewModel.Id, area = "Content" }));
                }
            }

            return(View(viewModel));
        }
        public ActionResult Delete([Bind(Include = "Id,Name")] ArtistManagementViewModel artist)
        {
            if (artist != null)
            {
                using (var repository = RepositoryFactory.GetArtistRepository())
                {
                    repository.Delete(ManagementMapper.GetArtistModel(artist));
                    repository.SaveChanges();
                }
            }

            return(RedirectToAction("List", "Artists", new { area = "Content" }));
        }
        public ActionResult New(
            [Bind(Include = "Name, Birthday, Biography, Photo, PostedPhoto")]
            ArtistManagementViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var artist = ManagementMapper.GetArtistModel(viewModel);
                using (var repository = RepositoryFactory.GetArtistRepository())
                {
                    repository.AddOrUpdate(artist);
                    repository.SaveChanges();
                    return(RedirectToAction("Details", "Artists", new { area = "Content", id = artist.Id }));
                }
            }

            return(View(viewModel));
        }
 /// <summary>
 /// </summary>
 /// <param name="viewModel">
 ///     The view model.
 /// </param>
 /// <returns>
 /// </returns>
 public static Artist GetArtistModel(ArtistManagementViewModel viewModel)
 {
     return(_managementModelsMapper.Map <Artist>(viewModel));
 }