public void CallCreateServiceMethodCreateArtistOnce_WhenInvoked() { // Arrange var createService = new Mock <ICreationService>(); var artistService = new Mock <IArtistService>(); var albumService = new Mock <IAlbumService>(); var genreService = new Mock <IGenreService>(); createService.Setup(x => x.CreateArtist(It.IsAny <string>())); var sut = new CreateController( createService.Object, artistService.Object, albumService.Object, genreService.Object); var model = new CreateArtistViewModel() { Name = "Artist Name" }; // Act sut.CreateArtist(model); // Assert createService.Verify(x => x.CreateArtist(It.IsAny <string>()), Times.Once); }
public async Task <ArtistCreationResult> AddArtistAsync( CreateArtistViewModel viewModel) { ArtistCreationResult result = new ArtistCreationResult(); string connectionString = _databaseOptions.ConnectionString; string sqlStatement = "insert into artists (first_name, last_name, full_name, is_approved, user_id, created_at, is_deleted, has_image) values (@first_name, @last_name, @full_name, @is_approved, @user_id, @created_at, @is_deleted, @has_image) returning id"; int artistId = 0; string firstName = viewModel.FirstName.ToLower(); string lastName = viewModel.LastName.ToLower(); string fullName = string.IsNullOrEmpty(lastName) ? firstName : $"{firstName} {lastName}"; bool isApproved = false; DateTime createdAt = DateTime.UtcNow; string userId = viewModel.UserId; bool isDeleted = false; bool hasImage = false; using (NpgsqlConnection connection = new NpgsqlConnection(connectionString)) { NpgsqlCommand command = new NpgsqlCommand(sqlStatement, connection); command.Parameters.AddWithValue("@first_name", firstName); command.Parameters.AddWithValue("@last_name", lastName); command.Parameters.AddWithValue("@full_name", fullName); command.Parameters.AddWithValue("@is_approved", isApproved); command.Parameters.AddWithValue("@user_id", userId); command.Parameters.AddWithValue("@created_at", createdAt); command.Parameters.AddWithValue("@is_deleted", isDeleted); command.Parameters.AddWithValue("@has_image", hasImage); try { await connection.OpenAsync(); object artistIdentity = command.ExecuteScalar(); artistId = (int)artistIdentity; ArtistSlugCreateViewModel artistSlug = new ArtistSlugCreateViewModel(); artistSlug.Name = fullName.NormalizeStringForUrl(); artistSlug.IsPrimary = true; artistSlug.CreatedAt = createdAt; artistSlug.ArtistId = artistId; await _artistSlugsService.AddArtistSlugAsync(artistSlug); result.PrimarySlug = artistSlug.Name; } catch (Exception ex) { Console.WriteLine(ex.Message); } } return(result); }
public async Task <IActionResult> Add() { CreateArtistViewModel model = new CreateArtistViewModel(); var genresResult = await _genreRepo.ListAsync(contentPublicationFlags : PublishStatus.PUBLISHED); model.Genres = genresResult.Genres.Select(g => new SelectableGenreViewModel { Name = g.Name, IsSelected = false }).ToList(); return(View(model)); }
public async Task <IActionResult> Create(CreateArtistViewModel artistViewModel) { string pictureUrl = await this.cloudinaryService.UploadPictureAsync(artistViewModel.Image, artistViewModel.Name); ArtistServiceModel artist = new ArtistServiceModel { Name = artistViewModel.Name, Description = artistViewModel.Description, Image = pictureUrl }; artistService.Create(artist); return(RedirectToAction("All", "Artists")); }
public ActionResult Create(CreateArtistViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var request = new CreateArtistRequest { Name = model.Name }; _artistService.CreateArtist(request); return(RedirectToAction("Index")); }
public async Task <IActionResult> Create( CreateArtistViewModel viewModel) { try { viewModel.UserId = User .GetUserId() .ToString(); ArtistCreationResult result = await _artistsService .AddArtistAsync(viewModel); return(RedirectToAction("ArtistLyrics", "Lyric", new { artistSlug = result.PrimarySlug })); } catch { return(View(viewModel)); } }
public async Task <IActionResult> Add(CreateArtistViewModel model) { 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; } } } var result = await _artistRepo.AddAsync(new Artist { PublishedStatus = PublishStatus.UNPUBLISHED, Name = model.Name, BioText = model.BioText, Genres = model.Genres.Where(g => g.IsSelected).Select(g => g.Name).ToList(), BioImageId = createdBioImageId }); this.SetBootstrapPageAlert("Success", "Artist added", BootstrapAlertType.success); return(RedirectToAction(nameof(Index))); } else { return(View(model)); } }
public async Task <IActionResult> Update(CreateArtistViewModel serviceModel) { string pictureUrl = await this.cloudinaryService.UploadPictureAsync(serviceModel.Image, serviceModel.Name); var id = context.Artists.FirstOrDefault(x => x.Name.ToLower() == serviceModel.Name.ToLower()); if (id != null) { ArtistServiceModel artist = new ArtistServiceModel { Name = serviceModel.Name, Description = serviceModel.Description, Image = pictureUrl }; artistService.Update(artist, id.Id); return(RedirectToAction("All", "Artists")); } else { return(NotFound());//RedirectToAction("All", "Artists"); } }
public IActionResult Create(CreateArtistViewModel model) { Boolean success = _artistService.AddArtist(_mapper.Map <MusicCore.Artist>(model.artist)); return(RedirectToAction("Artists")); }
public IActionResult Create() { CreateArtistViewModel model = new CreateArtistViewModel(); return(View(model)); }
public ActionResult CreateArtist(CreateArtistViewModel artist) { this.createService.CreateArtist(artist.Name); return(RedirectToAction(CreationChoiceAction)); }
public ActionResult CreateArtist() { var model = new CreateArtistViewModel(); return(View(model)); }