private static void CleanupDatabaseIfDirty(IExportImportRepository repository) { var exportDto = repository.GetSingleItem <ExportDto>(); var isDirty = exportDto.IsDirty; exportDto.IsDirty = true; repository.UpdateSingleItem(exportDto); if (!isDirty) { return; } var typeLocator = new TypeLocator(); var types = typeLocator.GetAllMatchingTypes( t => t != null && t.IsClass && !t.IsAbstract && t.IsVisible && typeof(BasicExportImportDto).IsAssignableFrom(t)); foreach (var type in from type in types let typeName = type.Name where !CleanUpIgnoredClasses.Contains(typeName) select type) { try { repository.CleanUpLocal(type.Name); } catch (Exception e) { Logger.ErrorFormat( "Unable to clear {0} while calling CleanupDatabaseIfDirty. Error: {1}", type.Name, e.Message); } } }
protected internal static void BuildJobSummary(string packageId, IExportImportRepository repository, ImportExportSummary summary) { var summaryItems = new SummaryList(); var implementors = Util.GetPortableImplementors(); var exportDto = repository.GetSingleItem <ExportDto>(); foreach (var implementor in implementors) { implementor.Repository = repository; summaryItems.Add(new SummaryItem { TotalItems = implementor.GetImportTotal(), Category = implementor.Category, Order = implementor.Priority, }); } summary.ExportFileInfo = GetExportFileInfo(Path.Combine(ExportFolder, packageId, Constants.ExportManifestName)); summary.FromDate = exportDto.FromDateUtc; summary.ToDate = exportDto.ToDateUtc; summary.SummaryItems = summaryItems; summary.IncludeDeletions = exportDto.IncludeDeletions; summary.IncludeContent = exportDto.IncludeContent; summary.IncludeExtensions = exportDto.IncludeExtensions; summary.IncludePermissions = exportDto.IncludePermissions; summary.IncludeProfileProperties = exportDto.IncludeProperfileProperties; summary.ExportMode = exportDto.ExportMode; }