public PageInfo AddPage(string nspace, string name, DateTime creationDateTime)
{
if(name == null) throw new ArgumentNullException("name");
if(name.Length == 0) throw new ArgumentException("Name cannot be empty", "name");
lock(this) {
if(!NamespaceExists(nspace)) return null;
if(PageExists(new PageInfo(NameTools.GetFullName(nspace, name), this, DateTime.Now))) return null;
LocalPageInfo result = new LocalPageInfo(NameTools.GetFullName(nspace, name), this, creationDateTime,
GetNamespacePartialPathForPageContent(nspace) + name + ".cs");
BackupPagesFile();
// Structure
// Namespace.Page|File|CreationDateTime
File.AppendAllText(GetFullPath(PagesFile), result.FullName + "|" + result.File + "|" + creationDateTime.ToString("yyyy'/'MM'/'dd' 'HH':'mm':'ss") + "\r\n");
//File.Create(GetFullPathForPageContent(result.File)).Close(); // Empty content file might cause problems with backups
File.WriteAllText(GetFullPathForPageContent(result.File), "--\r\n--|1900/01/01 0:00:00|\r\n##PAGE##\r\n--");
pagesCache = null;
return result;
}
}