示例#1
0
        private void DeleteFilesAndFolders(TenantUserSettings tenantUser)
        {
            try
            {
                CoreContext.TenantManager.SetCurrentTenant(tenantUser.TenantId);
                var userAccount = CoreContext.Authentication.GetAccountByID(tenantUser.UserId);

                if (userAccount == Constants.Guest)
                {
                    return;
                }

                SecurityContext.CurrentAccount = userAccount;

                using (var fileDao = Global.DaoFactory.GetFileDao())
                    using (var folderDao = Global.DaoFactory.GetFolderDao())
                    {
                        var now = DateTime.UtcNow;

                        var itemList = new ItemList <string>();
                        var trashId  = folderDao.GetFolderIDTrash(false, tenantUser.UserId);
                        itemList.AddRange(folderDao.GetFolders(trashId)
                                          .Where(x => FileDateTime.GetModifiedOnWithAutoCleanUp(x.ModifiedOn, tenantUser.Setting, true) < now)
                                          .Select(f => "folder_" + f.ID));
                        itemList.AddRange(fileDao.GetFiles(trashId, null, default(FilterType), false, Guid.Empty, string.Empty, false)
                                          .Where(x => FileDateTime.GetModifiedOnWithAutoCleanUp(x.ModifiedOn, tenantUser.Setting, true) < now)
                                          .Select(y => "file_" + y.ID));

                        logger.InfoFormat("Start clean up tenant {0}, folder {1}", tenantUser.TenantId, trashId);
                        Global.FileStorageService.DeleteItems("delete", itemList, true, false, true);
                        logger.InfoFormat("Waiting for tenant {0}, folder {1}...", tenantUser.TenantId, trashId);
                        while (true)
                        {
                            var statuses = Global.FileStorageService.GetTasksStatuses();

                            if (statuses.TrueForAll(r => r.Finished))
                            {
                                break;
                            }

                            Thread.Sleep(100);
                        }
                        logger.InfoFormat("Finish clean up tenant {0}, folder {1}", tenantUser.TenantId, trashId);
                    }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
            finally
            {
                SecurityContext.Logout();
            }
        }
示例#2
0
        public string GetOutputLine()
        {
            //build and return full output line string using the data members above (for Graig's file)
            StringBuilder output = new StringBuilder(FileSize + "," + FileDateTime.ToString("MMM d yyyy HH:mm") + "," + ItemName);

            output.Append((HasRev) ? ("," + ItemRev) : (","));
            output.Append((HasSht) ? ("," + ItemSht) : (","));
            output.Append(("," + Server));
            output.Append("," + UncRaw + "," + UncPdf);

            return(output.ToString());
        }
示例#3
0
 public override string ToString()
 {
     return(FileDateTime.ToString("yyyy-MM-dd hh:mm:ss tt"));
 }
示例#4
0
 public RelatedFile(FileInfo file, FileDateTime dateTime, string extension) : base(file, dateTime)
 {
     Extension = extension;
 }