示例#1
0
        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;
        }