public void ArchiveCharacter(ICharacter entity)
{
var dirName = BaseDirectory + entity.AccountHandle + "/" + CurrentDirectoryName + entity.ID + "/";
if (!VerifyDirectory(dirName))
throw new Exception("Unable to locate or create current player directory.");
var entityFileName = GetCharacterFilename(entity);
if (string.IsNullOrWhiteSpace(entityFileName))
return;
var fullFileName = dirName + entityFileName;
if (!File.Exists(fullFileName))
return;
var archiveFileDirectory = BaseDirectory + entity.AccountHandle + "/" + ArchiveDirectoryName + entity.ID + "/" + DatedBackupDirectory;
if (!VerifyDirectory(archiveFileDirectory))
throw new Exception("Unable to locate or create archive player directory.");
try
{
var archiveFile = archiveFileDirectory + entityFileName;
if (File.Exists(archiveFile))
File.Delete(archiveFile);
File.Move(fullFileName, archiveFile);
}
catch (Exception ex)
{
LoggingUtility.LogError(ex);
}
}