static void Main(string[] args) { var service = new WorkSearchService(_serviceName, _apiSearchKey, _apiAdminKey, _indexName); if (args == null || args.Length == 0 || args[0].ToLower() == "deploy") { service.CreateIndexAsync().Wait(); } else if (args[0].ToLower() == "delete") { service.DeleteIndexAsync().Wait(); } }
public static WorkDataLogProcessor Create(Web3 web3, IStandardDataRegistry dataRegistry, IIpfsImageQueue imageQueue, WorkRepository workRepository, WorkSearchService workSearchService, MusicRecordingService musicRecordingService ) { var services = new List <IStandardDataProcessingService <MusicRecordingDTO> >(); services.Add(workRepository); services.Add(workSearchService); services.Add(new WorkIpfsImagesStandardDataProcessingService(imageQueue)); services.Add(musicRecordingService); return(new WorkDataLogProcessor(web3, dataRegistry, services)); }
public async Task TestNull() { var service = new WorkSearchService(_serviceName, _apiSearchKey, _apiAdminKey, _indexName); await service.DeleteIndexAsync(); await service.CreateIndexAsync(); var works = new Work.Model.Work[] { new Work.Model.Work() { Address = "0x050c98dfa840cf812c948fa5b4e247fff75bb063", ByArtistName = "The band", ByArtistAddress = "0x050c98dfa840cf812c948fa5b4e247fff75bb063_0", FeaturedArtists = new List <Work.Model.WorkArtist>(new [] { new Work.Model.WorkArtist(1, "Simon", "Guitar"), new Work.Model.WorkArtist(2, "Juan", "Tamborine") }), PerformingArtists = new List <Work.Model.WorkArtist>(new [] { new Work.Model.WorkArtist(3, "Gael", "Piano"), new Work.Model.WorkArtist(4, "Karl", "Vocal") }), ContributingArtists = new List <Work.Model.WorkArtist>(new[] { new Work.Model.WorkArtist(4, "Jesse", "Lyrics"), new Work.Model.WorkArtist(5, "Gabe", "Producer"), new Work.Model.WorkArtist(6, "Vlad", "Cover") }), Genre = "Techno", Keywords = "TechHouse, House", Name = "Blackout", Image = "QmbwG5QB9ssqu49WDyw93hwGBYMZiueqNKYCkGL6DZC7Vb", Audio = "workFile", IswcCode = "123", Label = "White Label", Publisher = "White publishing", Description = "immersing techno house, with tribal vocal hints", }, }; await service.UpsertAsync(works); }
public async Task Test() { var service = new WorkSearchService(_serviceName, _apiSearchKey, _apiAdminKey, _indexName); await service.DeleteIndexAsync(); await service.CreateIndexAsync(); var works = new Work.Model.Work[] { new Work.Model.Work() { Address = "0x050c98dfa840cf812c948fa5b4e247fff75bb063", ByArtistName = "The band", ByArtistAddress = "0x050c98dfa840cf812c948fa5b4e247fff75bb063_0", FeaturedArtists = new List <Work.Model.WorkArtist>(new [] { new Work.Model.WorkArtist(1, "Simon", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_1", "Guitar"), new Work.Model.WorkArtist(2, "Juan", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_2", "Tamborine") }), PerformingArtists = new List <Work.Model.WorkArtist>(new [] { new Work.Model.WorkArtist(3, "Gael", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_3", "Piano"), new Work.Model.WorkArtist(4, "Karl", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_4", "Vocal") }), ContributingArtists = new List <Work.Model.WorkArtist>(new[] { new Work.Model.WorkArtist(4, "Jesse", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_5", "Lyrics"), new Work.Model.WorkArtist(5, "Gabe", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_6", "Producer"), new Work.Model.WorkArtist(6, "Vlad", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_7", "Cover") }), Genre = "Techno", Keywords = "TechHouse, House", Name = "Blackout", Image = "QmbwG5QB9ssqu49WDyw93hwGBYMZiueqNKYCkGL6DZC7Vb", Audio = "workFile", IswcCode = "123", Label = "White Label", Publisher = "White publishing", Description = "immersing techno house, with tribal vocal hints", }, new Work.Model.Work() { Address = "0x23c575374941865b641e733c44073c8f02a11229", ByArtistName = "The band 2", ByArtistAddress = "0x23c575374941865b641e733c44073c8f02a11229_1", FeaturedArtists = new List <Work.Model.WorkArtist>(new [] { new Work.Model.WorkArtist(1, "Laurent Garnier", "0x23c575374941865b641e733c44073c8f02a11229_1", "Guitar") }), ContributingArtists = new List <Work.Model.WorkArtist>(new [] { new Work.Model.WorkArtist(2, "Juan", "0x050c98dfa840cf812c948fa5b4e247fff75bb063_2", "Tamborine") }), Genre = "Techno", Keywords = "Trance, House", Name = "Wake Up", Image = "QmbwG5QB9ssqu49WDyw93hwGBYMZiueqNKYCkGL6DZC7Vb", Audio = "workFile", IswcCode = "124", Label = "White Label", Publisher = "White publishing", Description = "immersing hard techno trance" } }; await service.UpsertAsync(works); //Wait to be indexed Thread.Sleep(2000); var result = await service.SearchAsync("House"); Assert.Equal(2, result.Count); Assert.Equal(4, result.Facets["keywords"].Count); //we have 1 house, 1 techHouse, 1 Trance and 1 Techno (the genre) Assert.Equal(1, result.Facets["genre"].Count); //we have 1 main genre Techno //we may want to add genre as the fisrt tag as per sound cloud result = await service.SearchAsync("Juan"); Assert.Equal(2, result.Count); //addresses are stored in lower case and converted to lower when retrieving directly result = await service.GetWorksByArtistAsync("0x050c98dfa840cf812c948fa5b4e247fff75bb063_2".ToUpper()); Assert.Equal(2, result.Count); result = await service.GetWorksByArtistAsync("0x23c575374941865b641e733c44073c8f02a11229_1"); Assert.Equal(1, result.Count); var suggestResult = await service.SuggestAsync("Laur", true); Assert.Equal(1, suggestResult.Results.Count); await service.DeleteIndexAsync(); }