Пример #1
0
        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);
            }
        }
Пример #2
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. &lt;br&gt;&lt;br&gt;&lt;b&gt;Permissions Needed:&lt;/b&gt; 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));
        }
Пример #5
0
        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]"
            });
        }
Пример #6
0
        private Artist MapSearchResult(ArtistResource resource)
        {
            var artist = _artistService.FindById(resource.Id);

            if (artist == null)
            {
                artist          = new Artist();
                artist.Metadata = MapArtistMetadata(resource);
            }

            return(artist);
        }
Пример #7
0
        public async Task <IHttpActionResult> PostArtist(ArtistResource artist)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var artistService = new ArtistService();
            await artistService.CreateArtist(artist);

            return(Ok(artist));
        }
Пример #8
0
        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);
            }
        }
Пример #9
0
        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));
        }
Пример #12
0
        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));
            }
        }
Пример #15
0
        /// <inheritdoc />
        /// <summary>
        /// Modifies an artist details &lt;b&gt;Permissions Needed:&lt;/b&gt; 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);
        }
Пример #16
0
 public void Setup()
 {
     _artist = EnsureArtist("8ac6cc32-8ddf-43b1-9ac4-4b04f9053176", "Alien Ant Farm");
 }