public void EnsureTrackFile(ArtistResource artist, int albumId, int albumReleaseId, int trackId, Quality quality) { var result = Tracks.GetTracksInArtist(artist.Id).Single(v => v.Id == trackId); if (result.TrackFile == null) { var path = Path.Combine(ArtistRootFolder, artist.ArtistName, "Track.mp3"); Directory.CreateDirectory(Path.GetDirectoryName(path)); File.WriteAllText(path, "Fake Track"); Commands.PostAndWait(new ManualImportCommand { Files = new List <ManualImportFile> { new ManualImportFile { Path = path, ArtistId = artist.Id, AlbumId = albumId, AlbumReleaseId = albumReleaseId, TrackIds = new List <int> { trackId }, Quality = new QualityModel(quality) } } }); Commands.WaitAll(); var track = Tracks.GetTracksInArtist(artist.Id).Single(x => x.Id == trackId); track.TrackFileId.Should().NotBe(0); } }
/// <inheritdoc /> /// <summary> /// Adds a new artist in the system Adds a new artist in the system. Use specific media contributions endpoint to add contributions. <br><br><b>Permissions Needed:</b> ANY /// </summary> /// <param name="artistResource">The new artist</param> public void AddArtist(ArtistResource artistResource) { mWebCallEvent.WebPath = "/media/artists"; if (!string.IsNullOrEmpty(mWebCallEvent.WebPath)) { mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{format}", "json"); } mWebCallEvent.HeaderParams.Clear(); mWebCallEvent.QueryParams.Clear(); mWebCallEvent.AuthSettings.Clear(); mWebCallEvent.PostBody = null; mWebCallEvent.PostBody = KnetikClient.Serialize(artistResource); // http body (model) parameter // authentication settings mWebCallEvent.AuthSettings.Add("oauth2_client_credentials_grant"); // authentication settings mWebCallEvent.AuthSettings.Add("oauth2_password_grant"); // make the HTTP request mAddArtistStartTime = DateTime.Now; mWebCallEvent.Context = mAddArtistResponseContext; mWebCallEvent.RequestType = KnetikRequestType.POST; KnetikLogger.LogRequest(mAddArtistStartTime, "AddArtist", "Sending server request..."); KnetikGlobalEventSystem.Publish(mWebCallEvent); }
public async Task <ActionResult <ArtistResource> > CreateArist(SaveArtistResource saveArtistResource) { try { // validation SaveArtistResourceValidator validation = new SaveArtistResourceValidator(); ValidationResult validationResult = await validation.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } // mappage view to db Artist artist = _mapperService.Map <SaveArtistResource, Artist>(saveArtistResource); // Creation artist Artist artistNew = await _serviceArtist.CreateArtist(artist); // mappage view to db ArtistResource artistResource = _mapperService.Map <Artist, ArtistResource>(artistNew); return(Ok(artistResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult <ArtistResource> > GetArtistsById(int id) { var artist = await _artistService.GetArtistById(id); ArtistResource artistResource = _mapper.Map <Artist, ArtistResource>(artist); return(Ok(artistResource)); }
public void should_be_able_to_add_to_blacklist() { _artist = EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm"); Blacklist.Post(new BlacklistResource { ArtistId = _artist.Id, SourceTitle = "Blacklist - Album 1 [2015 FLAC]" }); }
private Artist MapSearchResult(ArtistResource resource) { var artist = _artistService.FindById(resource.Id); if (artist == null) { artist = new Artist(); artist.Metadata = MapArtistMetadata(resource); } return(artist); }
public async Task <IHttpActionResult> PostArtist(ArtistResource artist) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var artistService = new ArtistService(); await artistService.CreateArtist(artist); return(Ok(artist)); }
public async Task <bool> CreateArtist(ArtistResource artist) { var entity = new Artist() { Name = artist.Name, Description = artist.Description }; using (var context = new OneOffEntities()) { context.Artists.Add(entity); return(await context.SaveChangesAsync() == 1); } }
private static ArtistMetadata MapArtistMetadata(ArtistResource resource) { ArtistMetadata artist = new ArtistMetadata(); artist.Name = resource.ArtistName; artist.Aliases = resource.ArtistAliases; artist.ForeignArtistId = resource.Id; artist.OldForeignArtistIds = resource.OldIds; artist.Genres = resource.Genres; artist.Overview = resource.Overview; artist.Disambiguation = resource.Disambiguation; artist.Type = resource.Type; artist.Status = MapArtistStatus(resource.Status); artist.Ratings = MapRatings(resource.Rating); artist.Images = resource.Images?.Select(MapImage).ToList(); artist.Links = resource.Links?.Select(MapLink).ToList(); return(artist); }
public async Task <ActionResult <ArtistResource> > GETArtistById(int id) { try { Artist artist = await _serviceArtist.GetArtistById(id); if (artist == null) { return(BadRequest("cet artist n'existe pas")); } ArtistResource artistResource = _mapperService.Map <Artist, ArtistResource>(artist); return(Ok(artistResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult <ArtistResource> > CreateArtist([FromBody] SaveArtistResource saveArtistResource) { SaveArtistResourceValidator validator = new SaveArtistResourceValidator(); var validationResult = await validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } Artist artistToBeCreated = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); Artist newArtist = await _artistService.CreateArtist(artistToBeCreated); Artist artist = await _artistService.GetArtistById(newArtist.Id); ArtistResource artistResource = _mapper.Map <Artist, ArtistResource>(artist); return(Ok(artistResource)); }
static void Main(string[] args) { var artistResource = new ArtistResource(new Artist()); var bookResource = new BookResource(new Book()); //Two different view for artist resource var longFormViewForArtist = new LongFormView(artistResource); var shortFormViewForArtist = new ShortFormView(artistResource); //Two different view for book resource var longFormViewForBook = new LongFormView(bookResource); var shortFormViewForBook = new ShortFormView(bookResource); //We can completely change the behavior of sources via theirs objects Console.WriteLine(longFormViewForArtist.generateHTML()); Console.WriteLine(shortFormViewForArtist.generateHTML()); Console.WriteLine(longFormViewForBook.generateHTML()); Console.WriteLine(shortFormViewForBook.generateHTML()); }
public async Task <ActionResult <ArtistResource> > UpdateArtist(int id, [FromBody] SaveArtistResource saveArtistResource) { SaveArtistResourceValidator validator = new SaveArtistResourceValidator(); var validationResult = await validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var artist = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); Artist artistToBeUpdated = await _artistService.GetArtistById(id); await _artistService.UpdateArtist(artistToBeUpdated, artist); Artist updatedArtist = await _artistService.GetArtistById(id); ArtistResource updatedArtistResource = _mapper.Map <Artist, ArtistResource>(updatedArtist); return(Ok(updatedArtistResource)); }
public async Task <ActionResult <ArtistResource> > UpdateArist(int id, SaveArtistResource saveArtistResource) { try { // Get arist by ID Artist artistUpdate = await _serviceArtist.GetArtistById(id); if (artistUpdate == null) { return(NotFound()); } // validation SaveArtistResourceValidator validation = new SaveArtistResourceValidator(); ValidationResult validationResult = await validation.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } //mappage Artist artist = _mapperService.Map <SaveArtistResource, Artist>(saveArtistResource); // update Artist await _serviceArtist.UpdateArtist(artistUpdate, artist); //get artistBy id Artist artistNew = await _serviceArtist.GetArtistById(id); /// mappage ArtistResource artisrNewResource = _mapperService.Map <Artist, ArtistResource>(artistNew); return(Ok(artisrNewResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
/// <inheritdoc /> /// <summary> /// Modifies an artist details <b>Permissions Needed:</b> ARTISTS_ADMIN /// </summary> /// <param name="id">The artist id</param> /// <param name="artistResource">The new artist</param> public void UpdateArtist(long?id, ArtistResource artistResource) { // verify the required parameter 'id' is set if (id == null) { throw new KnetikException(400, "Missing required parameter 'id' when calling UpdateArtist"); } mWebCallEvent.WebPath = "/media/artists/{id}"; if (!string.IsNullOrEmpty(mWebCallEvent.WebPath)) { mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{format}", "json"); } mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{" + "id" + "}", KnetikClient.ParameterToString(id)); mWebCallEvent.HeaderParams.Clear(); mWebCallEvent.QueryParams.Clear(); mWebCallEvent.AuthSettings.Clear(); mWebCallEvent.PostBody = null; mWebCallEvent.PostBody = KnetikClient.Serialize(artistResource); // http body (model) parameter // authentication settings mWebCallEvent.AuthSettings.Add("oauth2_client_credentials_grant"); // authentication settings mWebCallEvent.AuthSettings.Add("oauth2_password_grant"); // make the HTTP request mUpdateArtistStartTime = DateTime.Now; mWebCallEvent.Context = mUpdateArtistResponseContext; mWebCallEvent.RequestType = KnetikRequestType.PUT; KnetikLogger.LogRequest(mUpdateArtistStartTime, "UpdateArtist", "Sending server request..."); KnetikGlobalEventSystem.Publish(mWebCallEvent); }
public void Setup() { _artist = EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm"); }