#5 fixing processing uploads

This commit is contained in:
Hamid Reza Mohammadi 2020-10-04 19:55:51 +03:30
parent a1864b9084
commit 4e277f12cd
4 changed files with 14 additions and 77 deletions

View File

@ -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;

View File

@ -3019,67 +3019,6 @@
Audio
</summary>
</member>
<member name="T:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel">
<summary>
Upload session view model
</summary>
</member>
<member name="M:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.#ctor(RMuseum.Models.UploadSession.UploadSession)">
<summary>
Constructor
</summary>
<param name="src"></param>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.Id">
<summary>
Id
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.SessionType">
<summary>
Session Type
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.User">
<summary>
User
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.UploadStartTime">
<summary>
Upload Start Time
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.UploadEndTime">
<summary>
Upload End Time
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.ProcessStartTime">
<summary>
Process Start Time
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.ProcessEndTime">
<summary>
Process End Time
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.ProcessProgress">
<summary>
Process Progress
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.Status">
<summary>
Status
</summary>
</member>
<member name="P:RMuseum.Models.UploadSession.ViewModels.UploadSessionViewModel.UploadedFiles">
<summary>
Uploaded Files
</summary>
</member>
<member name="T:RMuseum.Services.IArtifactService">
<summary>
Artifact Item Service

View File

@ -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;

View File

@ -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<UploadSessionFile> mp3files = new List<UploadSessionFile>();
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<dynamic>.Paginate(source, paging);