示例#1
0
        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);
            }
        }
示例#2
0
        /// <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);
        }