diff --git a/RMuseum/Controllers/AudioNarrationController.cs b/RMuseum/Controllers/AudioNarrationController.cs index 33345aba..08fa3098 100644 --- a/RMuseum/Controllers/AudioNarrationController.cs +++ b/RMuseum/Controllers/AudioNarrationController.cs @@ -6,7 +6,6 @@ using RMuseum.Models.Auth.Memory; using RMuseum.Models.GanjoorAudio; using RMuseum.Models.GanjoorAudio.ViewModels; using RMuseum.Models.UploadSession; -using RMuseum.Models.UploadSession.ViewModels; using RMuseum.Services; using RSecurityBackend.Models.Generic; using RSecurityBackend.Services; diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml index 56bbbb30..9b1ddf44 100644 --- a/RMuseum/RMuseum.xml +++ b/RMuseum/RMuseum.xml @@ -3019,67 +3019,6 @@ Audio - - - Upload session view model - - - - - Constructor - - - - - - Id - - - - - Session Type - - - - - User - - - - - Upload Start Time - - - - - Upload End Time - - - - - Process Start Time - - - - - Process End Time - - - - - Process Progress - - - - - Status - - - - - Uploaded Files - - Artifact Item Service diff --git a/RMuseum/Services/IAudioNarrationService.cs b/RMuseum/Services/IAudioNarrationService.cs index ce96670d..863da863 100644 --- a/RMuseum/Services/IAudioNarrationService.cs +++ b/RMuseum/Services/IAudioNarrationService.cs @@ -2,7 +2,6 @@ using RMuseum.Models.GanjoorAudio; using RMuseum.Models.GanjoorAudio.ViewModels; using RMuseum.Models.UploadSession; -using RMuseum.Models.UploadSession.ViewModels; using RSecurityBackend.Models.Generic; using System; using System.Threading.Tasks; diff --git a/RMuseum/Services/Implementation/AudioNarrationService.cs b/RMuseum/Services/Implementation/AudioNarrationService.cs index d24e0fdd..9aca5b85 100644 --- a/RMuseum/Services/Implementation/AudioNarrationService.cs +++ b/RMuseum/Services/Implementation/AudioNarrationService.cs @@ -4,11 +4,9 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using MySql.Data.MySqlClient; using RMuseum.DbContext; -using RMuseum.Migrations; using RMuseum.Models.GanjoorAudio; using RMuseum.Models.GanjoorAudio.ViewModels; using RMuseum.Models.UploadSession; -using RMuseum.Models.UploadSession.ViewModels; using RMuseum.Services.Implementation.ImportedFromDesktopGanjoor; using RSecurityBackend.Models.Generic; using RSecurityBackend.Services.Implementation; @@ -254,9 +252,14 @@ namespace RMuseum.Services.Implementation { using (RMuseumDbContext context = new RMuseumDbContext(Configuration)) //this is long running job, so _context might be already been freed/collected by GC { + session.ProcessStartTime = DateTime.Now; + double fileCount = session.UploadedFiles.Count; + int processFilesCount = 0; List mp3files = new List(); foreach (UploadSessionFile file in session.UploadedFiles.Where(file => Path.GetExtension(file.FilePath) == ".mp3").ToList()) { + processFilesCount++; + session.ProcessProgress = (int)(processFilesCount / fileCount * 100.0); try { file.MP3FileCheckSum = PoemAudio.ComputeCheckSum(file.FilePath); @@ -400,17 +403,21 @@ namespace RMuseum.Services.Implementation context.UploadSessions.Update(session); await context.SaveChangesAsync(); } + processFilesCount++; + session.ProcessProgress = (int)(processFilesCount / fileCount * 100.0); } + session.ProcessEndTime = DateTime.Now; + context.Update(session); + //remove session files (house keeping) - foreach(UploadSessionFile file in session.UploadedFiles) + foreach (UploadSessionFile file in session.UploadedFiles) { - if(!file.ProcessResult) + if(!file.ProcessResult && string.IsNullOrEmpty(file.ProcessResultMsg)) { file.ProcessResultMsg = "فایل xml یا mp3 متناظر این فایل یافت نشد."; - file.ProcessResult = true; context.Update(file); - await context.SaveChangesAsync(); + } if(File.Exists(file.FilePath)) { @@ -424,6 +431,7 @@ namespace RMuseum.Services.Implementation } } } + await context.SaveChangesAsync(); } } @@ -620,14 +628,6 @@ namespace RMuseum.Services.Implementation { file.FileName, file.ProcessResult, file.ProcessResultMsg, session.UploadEndTime, session.User.UserName, session.ProcessStartTime, session.ProcessProgress, session.ProcessEndTime } ).AsQueryable(); - /* - _context.UploadSessions - .Include(u => u.User) - .Include(u => u.UploadedFiles) - .Where(u => userId == Guid.Empty || u.UseId == userId ) - .OrderByDescending(u => u.UploadEndTime) - .AsQueryable();*/ - (PaginationMetadata PagingMeta, dynamic[] Items) paginatedResult = await QueryablePaginator.Paginate(source, paging);