public async Task <IActionResult> Edit(int id)
        {
            EditArtistViewModel model = new EditArtistViewModel();
            var genresResult          = await _genreRepo.ListAsync(contentPublicationFlags : PublishStatus.PUBLISHED);

            model.Genres = genresResult.Genres.Select(g => new SelectableGenreViewModel
            {
                Name       = g.Name,
                IsSelected = false
            }).ToList();

            ArtistDetail artist = await _artistRepo.GetAsync(id);

            if (artist != null)
            {
                model.Id              = artist.Id;
                model.Name            = artist.Name;
                model.BioText         = artist.BioText;
                model.BioImageId      = artist.BioImageId;
                model.Created         = artist.CreatedUtc;
                model.Updated         = artist.UpdatedUtc;
                model.PublishedStatus = artist.PublishedStatus;
                model.Genres.Where(g => artist.Genres.Contains(g.Name)).ToList().ForEach(x => x.IsSelected = true);

                return(View(model));
            }
            else
            {
                // todo: show error message
                return(RedirectToAction(nameof(Index)));
            }
        }
        public async Task <IActionResult> Edit(EditArtistViewModel model)
        {
            ArtistDetail artist = await _artistRepo.GetAsync(model.Id);

            if (artist != null)
            {
                // set non postback properties
                model.BioImageId      = artist.BioImageId;
                model.Created         = artist.CreatedUtc;
                model.Updated         = artist.UpdatedUtc;
                model.PublishedStatus = artist.PublishedStatus;
                if (ModelState.IsValid)
                {
                    int?createdBioImageId = null;
                    if (model.BioImage != null && model.BioImage.Length > 0)
                    {
                        using (MemoryStream ms = new MemoryStream())
                        {
                            await model.BioImage.CopyToAsync(ms);

                            ImageReferenceDetail imageRef = await _imageRepo.AddAsync(new ImageReferenceDetail
                            {
                                Data     = ms.ToArray(),
                                FileName = model.BioImage.FileName,
                                MimeType = model.BioImage.ContentType
                            });

                            if (imageRef != null)
                            {
                                createdBioImageId = imageRef.Id;
                            }
                        }
                    }

                    artist.Name       = model.Name;
                    artist.BioText    = model.BioText;
                    artist.UpdatedUtc = DateTime.UtcNow;
                    artist.Genres     = model.Genres.Where(g => g.IsSelected).Select(g => g.Name).ToList();
                    if (createdBioImageId.HasValue)
                    {
                        artist.BioImageId = createdBioImageId.Value;
                    }
                    await _artistRepo.UpdateAsync(artist.Id, artist);

                    this.SetBootstrapPageAlert("Success", "Artist updated", BootstrapAlertType.success);
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    return(View(model));
                }
            }
            else
            {
                // todo: show error message
                return(RedirectToAction(nameof(Index)));
            }
        }
Example #3
0
        public IActionResult Edit(EditArtistViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            artistRepository.EditArtist(viewModel);

            return(RedirectToAction("index"));
        }
Example #4
0
        public void EditArtist(EditArtistViewModel model)
        {
            var artist = new Artist
            {
                Id          = model.Id,
                Name        = model.Name,
                EMail       = model.Email,
                Revenue     = model.Revenue,
                Description = model.Description
            };

            context.Artists.Update(artist);
            context.SaveChanges();
        }
Example #5
0
        public ActionResult Edit(Guid id)
        {
            var response = _artistService.GetArtist(new GetArtistRequest {
                Id = id
            });

            var model = new EditArtistViewModel
            {
                Id   = response.Artist.Id,
                Name = response.Artist.Name
            };

            return(View(model));
        }
Example #6
0
        public ActionResult Edit(EditArtistViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var request = new EditArtistRequest
            {
                Id   = model.Id,
                Name = model.Name
            };

            _artistService.EditArtist(request);

            return(RedirectToAction("Index"));
        }
 public EditArtistPage(Artist artist)
 {
     InitializeComponent();
     BindingContext = _viewModel = new EditArtistViewModel(Navigation, artist);
 }