public override void Execute(IJobExecutionContext context) { try { base.Execute(context); FileUploadDeleteResult ObjectResult = _fileUploadServiceService.DeleteUploadFiles(); TaskLog Log = new TaskLog(); Log.Id = LogId; string Comment = "N/A"; bool Result = false; if (ObjectResult != null) { Result = ObjectResult.Result; Comment = ObjectResult.FilesAnalyzedNumber + " files analyzed : </br> - " + ObjectResult.FilesDeletedNumber + " files deleted </br> - " + ObjectResult.FilesErrorsNumber + " errors"; } _taskLogService.UpdateTaskLog(LogId, Result, Comment); } catch (Exception e) { Commons.Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); } }
/// <summary> /// Delete old files not used /// </summary> /// <returns></returns> public FileUploadDeleteResult DeleteUploadFiles() { FileUploadDeleteResult result = new FileUploadDeleteResult(); try { int intDate; DirectoryInfo InfoUploadFolderEncrypted = new DirectoryInfo(FileHelper.GetStorageRoot(CommonsConst.Const.BasePathUploadEncrypted)); //Assuming Test is your Folder DirectoryInfo InfoUploadFolderDecrypted = new DirectoryInfo(FileHelper.GetStorageRoot(CommonsConst.Const.BasePathUploadDecrypted)); //Assuming Test is your Folder List <FileInfo> Files = InfoUploadFolderEncrypted.GetFiles().ToList(); //Getting Text List <FileInfo> FilesDecrypted = InfoUploadFolderDecrypted.GetFiles().Where(f => !f.Name.Contains("news")).ToList(); //Getting Text files Files.AddRange(FilesDecrypted); string FileName = ""; DateTime DateToCompare = DateTime.UtcNow.AddDays(-2); var UsersList = _userRepo.List(); var ProductsList = _productRepo.List(); List <string> ListUsedFilesPictureSrc = UsersList.Select(u => u.PictureSrc)?.ToList(); List <string> ListUsedFilesPictureThumbnailSrc = UsersList.Select(u => u.PictureThumbnailSrc)?.ToList(); List <string> ListUsedFilesProductsImageSrc = ProductsList.Select(u => u.ImageSrc)?.ToList(); List <string> ListUsedFiles = ListUsedFilesPictureSrc.Concat(ListUsedFilesPictureThumbnailSrc).Concat(ListUsedFilesProductsImageSrc).ToList(); if (ListUsedFiles != null && ListUsedFiles.Count > 0) { foreach (FileInfo file in Files) { result.FilesAnalyzedNumber++; FileName = file.Name; try { if (FileName.Length < 8 && int.TryParse(FileName.Substring(0, 8).ToString(), out intDate)) { result.FilesErrorsNumber++; } else { DateTime DateFile = new DateTime(Convert.ToInt32(FileName.Substring(0, 4)), Convert.ToInt32(FileName.Substring(4, 2)), Convert.ToInt32(FileName.Substring(6, 2))); string FullPathFile = CommonsConst.Const.BasePathUploadEncrypted + "/" + FileName; if (file.FullName.Contains("Decrypted")) { FullPathFile = CommonsConst.Const.BasePathUploadDecrypted + "/" + FileName; } if (DateFile < DateToCompare && !ListUsedFiles.Contains(FullPathFile)) { bool resultDelete = FileHelper.DeleteDocument(FullPathFile); if (resultDelete) { result.FilesDeletedNumber++; } else { result.FilesErrorsNumber++; } } } } catch (Exception ex) { result.FilesErrorsNumber++; Commons.Logger.GenerateError(ex, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "FileName = " + FileName); } } } if (result.FilesErrorsNumber > 0) { result.Result = false; } else { result.Result = true; } } catch (Exception e) { result.Result = false; result.Error = "Error : " + e.ToString(); Commons.Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); } return(result); }