#5 fixing processing uploads
This commit is contained in:
parent
a1864b9084
commit
4e277f12cd
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user