using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;
using BLL.Base;
using Model.UnitsOfWork;
using Model.Entities.Files.FS_Entities;
namespaceBLL.Services.System
{
///<summary>/// Сервис для уничтожения метрвых загрузок///</summary>publicclassGarbageUploadServices : BaseServices
{
readonlystatic TimeSpan UploadDeadTimeout = new TimeSpan(0, 5, 0);
publicGarbageUploadServices(UOW UOW) : base(UOW) { }
publicasync Task<int> DeleteDeadAsync()
{
returnawait Task.Run(() => DeleteDead());
}
///<summary>/// Выполняет удаление///</summary>///<returns></returns>publicintDeleteDead()
{
var now = DateTime.Now;
var dead_uploads = UOW.Repo_SFileUpload.All_List.
Where(e => (e.LastChunkUploaded - now) > UploadDeadTimeout);
foreach (var elem in dead_uploads)
UOW.Repo_SFileUpload.Delete(elem);
return dead_uploads.Count();
}
}
}