Tp.Integration.Plugin.Common.Activity.PluginRollingFileAppender.RollOverRenameFiles C# (CSharp) Method

RollOverRenameFiles() protected method

protected RollOverRenameFiles ( string baseFileName, System.DateTime timeStamp ) : void
baseFileName string
timeStamp System.DateTime
return void
		protected void RollOverRenameFiles(string baseFileName, DateTime timeStamp)
		{
			if (_maxSizeRollBackups == 0)
			{
				return;
			}

			FileInfo[] logFiles;
			string directoryName;
			string backupFileName;

			using (SecurityContext.Impersonate(this))
			{
				directoryName = baseFileName.GetDirectoryName();
				logFiles = new DirectoryInfo(directoryName)
					.GetFiles(ActivityLogFile.GetWildcartPatternFor(baseFileName))
					.OrderBy(x => ActivityLogFile.GetOrder(x.Name))
					.ToArray();
				backupFileName = ActivityLogFile.ComposeFileName(baseFileName, timeStamp);
			}

			if (_countDirection < 0)
			{
				if (_curSizeRollBackups == _maxSizeRollBackups)
				{
					DeleteFile(logFiles[_maxSizeRollBackups - 1].FullName);
					--_curSizeRollBackups;
				}

				for (int index = _curSizeRollBackups; index > 0; --index)
				{
					FileInfo file = logFiles[index];
					string newFileName;

					using (SecurityContext.Impersonate(this))
					{
						newFileName = file.Name.GetFileNameWithoutExtension() + '.' + (index + 1);
					}

					RollFile(file.FullName, directoryName.Combine(newFileName));
				}

				++_curSizeRollBackups;

				RollFile(baseFileName, directoryName.Combine(backupFileName + ".1"));
			}
			else
			{
				if (_curSizeRollBackups >= _maxSizeRollBackups && _maxSizeRollBackups > 0)
				{
					int num = _curSizeRollBackups - _maxSizeRollBackups;

					if (_staticLogFileName)
					{
						++num;
					}

					DeleteFile(logFiles[num].FullName);
				}

				if (_staticLogFileName)
				{
					++_curSizeRollBackups;

					RollFile(baseFileName, backupFileName + '.' + _curSizeRollBackups);
				}
			}
		}