public static TM_FileStorage delete_Database(this TM_FileStorage tmFileStorage) { tmFileStorage.assert_Not_Null() .path_XmlDatabase().assert_Not_Null() .assert_Is_Not_Equal_To(tmFileStorage.WebRoot); if (tmFileStorage.path_XmlDatabase().dirExists()) // check if the folder exists { //Assert.IsNotEmpty(tmDatabase.path_XmlDatabase().files()); tmFileStorage.path_XmlDatabase().files(true).files_Attribute_ReadOnly_Remove(); // make all files writable tmFileStorage.waitForComplete_Save_GuidanceItemsCache(); tmFileStorage.clear_GuidanceItemsCache(); Files.deleteFolder(tmFileStorage.path_XmlDatabase(), true); // delete all files recusively tmFileStorage.path_XmlDatabase().folder_Wait_For_Deleted(); tmFileStorage.path_XmlDatabase().assert_Folder_Doesnt_Exist(); Assert.IsFalse(tmFileStorage.path_XmlDatabase().dirExists()); // ensure the deletion happened Assert.IsEmpty(tmFileStorage.path_XmlDatabase().files()); Assert.IsEmpty(tmFileStorage.tmXmlDatabase().Cached_GuidanceItems); Assert.IsFalse(tmFileStorage.getCacheLocation().fileExists()); "[Test][TM_Xml_Database][delete_Database]TM database files were deleted from: {0}".info(tmFileStorage.path_XmlDatabase()); } return(tmFileStorage); }