public static void DeleteFileFolder(string folderName, ClearCatalogAndModelsResult result) { var contentRepository = ServiceLocator.Current.GetInstance <IContentRepository>(); var contentFolder = contentRepository.GetChildren <ContentFolder>(ContentReference.GlobalBlockFolder).Where(x => x.Name == folderName); // ReSharper disable PossibleMultipleEnumeration if (contentFolder.Any()) { contentRepository.Delete(contentFolder.First().ContentLink, true, AccessLevel.NoAccess); } // ReSharper restore PossibleMultipleEnumeration }
public ClearCatalogAndModelsResult ClearCatalogAndModels() { List <string> logList = new List <string>(); ClearCatalogAndModelsResult result = new ClearCatalogAndModelsResult(); ICatalogSystem catalogSystem = ServiceLocator.Current.GetInstance <ICatalogSystem>(); CatalogDto catalogDto = catalogSystem.GetCatalogDto(); foreach (CatalogDto.CatalogRow row in catalogDto.Catalog) { _log.Debug("Deleting catalog: " + row.Name); try { CatalogContext.Current.DeleteCatalog(row.CatalogId); result.CatalogsDeleted++; } catch (Exception e) { result.CatalogsFailed++; _log.Error("Failed to delete catalog: " + row.Name, e); } } DeleteAllMetaClasses(true, result); // Remove all imported inRiver Resources _log.Debug("Deleting inRiver Media Folder"); DeleteFileFolder("inRiver", result); // Cache is invalid now, clear it _log.Debug("Clearing Cache"); ClearCache(); _log.Debug("Syncing Content Type Models"); return(result); }
private void DeleteAllMetaClasses(bool doDelete, ClearCatalogAndModelsResult result) { MetaDataContext metaDataContext = new MetaDataContext(); MetaClassCollection metaClassCollection = MetaClass.GetList(metaDataContext); List <string> logList = new List <string>(); foreach (MetaClass metaClass in metaClassCollection) { if (doDelete && metaClass.IsSystem == false) { _log.DebugFormat("Deleting class: {0} - {1} (System: {2})", metaClass.Name, metaClass.Id, metaClass.IsSystem); try { MetaClass.Delete(metaDataContext, metaClass.Id); result.MetaClassesDeleted++; } catch (Exception ex) { result.MetaClassesSkipped++; _log.Error(string.Format("Cannot delete Class: {0} - {1} ({2})", metaClass.Name, metaClass.Id, ex.Message), ex); } } else { result.MetaClassesSkipped++; _log.DebugFormat("NOT deleting system class: {0} - {1} (System: {2})", metaClass.Name, metaClass.Id, metaClass.IsSystem); } } // List of meta data fields to keep. List <string> filterFields = new List <string>() { "TrackingNumber", "AddYourOwn" }; MetaFieldCollection fields = MetaField.GetList(metaDataContext); foreach (MetaField field in fields) { // Do not delete: System fields, filtered fields and fields starting with underscore if (doDelete && field.IsSystem == false && filterFields.Contains(field.Name) == false && field.Name.StartsWith("_") == false) { _log.DebugFormat("Deleting field: {0} - {1} (System: {2})", field.Name, field.Id, field.IsSystem); try { MetaField.Delete(metaDataContext, field.Id); result.MetaFieldsDeleted++; } catch (Exception ex) { result.MetaFieldsSkipped++; _log.Error(string.Format("Cannot delete Field: {0} - {1} ({2})", field.Name, field.Id, ex.Message), ex); } } else { result.MetaFieldsSkipped++; _log.DebugFormat("NOT deleting field: {0} - {1} (System: {2})", field.Name, field.Id, field.IsSystem); } } }