#61 import poem music tracks fixes

This commit is contained in:
Hamid Reza Mohammadi 2021-01-13 19:52:41 +03:30
parent 7123d5d017
commit 6d76765ef0
2 changed files with 32 additions and 31 deletions

View File

@ -9,9 +9,6 @@ namespace RMuseum.Models.MusicCatalogue
/// id
/// </summary>
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
/// <summary>
/// id
/// </summary>
public int Id { get; set; }
/// <summary>

View File

@ -965,8 +965,6 @@ namespace RMuseum.Services.Implementation
var job = (await jobProgressServiceEF.NewJob("GanjoorService:ImportFromMySql", "pre open connection")).Result;
MusicCatalogueService catalogueService = new MusicCatalogueService(Configuration);
RServiceResult<bool> musicCatalogueRes = await catalogueService.ImportFromMySql(jobProgressServiceEF, job);
@ -1074,14 +1072,15 @@ namespace RMuseum.Services.Implementation
}
context.GanjoorPages.Add(page);
await context.SaveChangesAsync();
}
}
}
}
job = (await jobProgressServiceEF.UpdateJob(job.Id, 0, "phase 1 - finalizing")).Result;
await context.SaveChangesAsync();
job = (await jobProgressServiceEF.UpdateJob(job.Id, 0, "phase 2 - pre fetch data")).Result;
@ -1148,11 +1147,11 @@ namespace RMuseum.Services.Implementation
page.FullTitle = fullTitle;
context.Update(page);
await context.SaveChangesAsync();
}
job = (await jobProgressServiceEF.UpdateJob(job.Id, job.Progress, "phase 2 - finalizing")).Result;
await context.SaveChangesAsync();
job = (await jobProgressServiceEF.UpdateJob(job.Id, 0, "phase 3 - pre mysql data fetch")).Result;
@ -1217,20 +1216,17 @@ namespace RMuseum.Services.Implementation
context.GanjoorPoems.Update(poem);
}
job = (await jobProgressServiceEF.UpdateJob(job.Id, 0, "phase 3 - finalizing meta data")).Result;
await context.SaveChangesAsync();
}
}
}
await _ImportPoemSongsDataFromMySql(context, jobProgressServiceEF, job);
job = (await jobProgressServiceEF.UpdateJob(job.Id, 0, "phase 3 - finalizing meta data")).Result;
await context.SaveChangesAsync();
var resPoemSongs = await _ImportPoemSongsDataFromMySql(context, jobProgressServiceEF, job);
if(!resPoemSongs.Result)
{
await jobProgressServiceEF.UpdateJob(job.Id, job.Progress, "", false, resPoemSongs.ExceptionString);
}
await jobProgressServiceEF.UpdateJob(job.Id, 100, "Finished", true);
}
@ -1284,19 +1280,32 @@ namespace RMuseum.Services.Implementation
AlbumName = row["album_name"].ToString(),
AlbumUrl = row["album_beeptunesurl"].ToString(),
TrackName = row["track_name"].ToString(),
TrackUrl = row["track_beeptunesurl"].ToString()
TrackUrl = row["track_beeptunesurl"].ToString(),
ApprovalDate = DateTime.Now,
Description = "",
Approved = true
};
var poem = await context.GanjoorPoems.Where(p => p.Id == track.PoemId).SingleOrDefaultAsync();
if (poem == null)
continue;
switch(track.TrackType)
{
case PoemMusicTrackType.BeepTunesOrKhosousi:
case PoemMusicTrackType.iTunes:
{
GanjoorTrack catalogueTrack = await context.GanjoorMusicCatalogueTracks.Where(m => m.Url == track.TrackUrl).SingleOrDefaultAsync();
GanjoorTrack catalogueTrack = await context.GanjoorMusicCatalogueTracks.Where(m => m.Url == track.TrackUrl).FirstOrDefaultAsync();
if(catalogueTrack != null)
{
track.GanjoorTrackId = catalogueTrack.Id;
}
GanjoorSinger singer = await context.GanjoorSingers.Where(s => s.Url == track.ArtistUrl).FirstOrDefaultAsync();
if(singer != null)
{
track.SingerId = singer.Id;
}
}
break;
case PoemMusicTrackType.Golha:
@ -1304,13 +1313,8 @@ namespace RMuseum.Services.Implementation
track.AlbumName = $"{track.ArtistName} » {track.AlbumName}";
track.ArtistName = "";
int golhaTrackId = int.Parse(track.AlbumUrl);
GolhaTrack golhaTrack = await context.GolhaTracks.Where(g => g.Id == golhaTrackId).SingleOrDefaultAsync();
if(golhaTrack != null)
{
track.GolhaTrackId = golhaTrack.Id;
track.AlbumUrl = "";
}
track.GolhaTrackId = int.Parse(track.ArtistUrl);
track.ArtistUrl = "";
}
break;
}