public virtual void DeleteExportProfile(ExportProfile profile, bool force = false)
        {
            if (profile == null)
            {
                throw new ArgumentNullException("profile");
            }

            if (!force && profile.IsSystemProfile)
            {
                throw new SmartException(_localizationService.GetResource("Admin.DataExchange.Export.CannotDeleteSystemProfile"));
            }

            int scheduleTaskId = profile.SchedulingTaskId;
            var folder         = profile.GetExportFolder();

            var deployments = profile.Deployments.Where(x => !x.IsTransientRecord()).ToList();

            if (deployments.Any())
            {
                _exportDeploymentRepository.DeleteRange(deployments);
                _exportDeploymentRepository.Context.SaveChanges();
            }

            _exportProfileRepository.Delete(profile);

            var scheduleTask = _scheduleTaskService.GetTaskById(scheduleTaskId);

            _scheduleTaskService.DeleteTask(scheduleTask);

            if (System.IO.Directory.Exists(folder))
            {
                FileSystemHelper.ClearDirectory(folder, true);
            }
        }
Exemple #2
0
        public virtual void DeleteExportProfile(ExportProfile profile, bool force = false)
        {
            if (profile == null)
            {
                throw new ArgumentNullException("profile");
            }

            if (!force && profile.IsSystemProfile)
            {
                throw new SmartException(_localizationService.GetResource("Admin.DataExchange.Export.CannotDeleteSystemProfile"));
            }

            int scheduleTaskId = profile.SchedulingTaskId;
            var folder         = profile.GetExportFolder();

            _exportProfileRepository.Delete(profile);

            var scheduleTask = _scheduleTaskService.GetTaskById(scheduleTaskId);

            _scheduleTaskService.DeleteTask(scheduleTask);

            _eventPublisher.EntityDeleted(profile);

            if (System.IO.Directory.Exists(folder))
            {
                FileSystemHelper.ClearDirectory(folder, true);
            }
        }
        /// <summary>
        /// Gets the ZIP path for an export profile.
        /// </summary>
        /// <param name="profile">Export profile.</param>
        /// <returns>ZIP file path.</returns>
        public static string GetExportZipPath(this ExportProfile profile)
        {
            Guard.NotNull(profile, nameof(profile));

            var name = new DirectoryInfo(profile.FolderName).Name.NullEmpty() ?? "ExportData";

            return(Path.Combine(profile.GetExportFolder(), name.ToValidFileName() + ".zip"));
        }
Exemple #4
0
        /// <summary>
        /// Gets the ZIP path for a profile
        /// </summary>
        /// <param name="profile">Export profile</param>
        /// <returns>ZIP file path</returns>
        public static string GetExportZipPath(this ExportProfile profile)
        {
            var name = (new DirectoryInfo(profile.FolderName)).Name;

            if (name.IsEmpty())
            {
                name = "ExportData";
            }

            return(Path.Combine(profile.GetExportFolder(), name.ToValidFileName() + ".zip"));
        }
Exemple #5
0
        /// <summary>
        /// Gets existing export files for an export profile
        /// </summary>
        /// <param name="profile">Export profile</param>
        /// <param name="provider">Export provider</param>
        /// <returns>List of file names</returns>
        public static IEnumerable <string> GetExportFiles(this ExportProfile profile, Provider <IExportProvider> provider)
        {
            var exportFolder = profile.GetExportFolder(true);

            if (System.IO.Directory.Exists(exportFolder) && provider.Value.FileExtension.HasValue())
            {
                var filter = "*.{0}".FormatInvariant(provider.Value.FileExtension.ToLower());

                return(System.IO.Directory.EnumerateFiles(exportFolder, filter, SearchOption.AllDirectories).OrderBy(x => x));
            }

            return(Enumerable.Empty <string>());
        }
Exemple #6
0
        /// <summary>
        /// Gets existing export files for an export profile
        /// </summary>
        /// <param name="profile">Export profile</param>
        /// <returns>List of file names</returns>
        public static List <string> GetExportFiles(this ExportProfile profile)
        {
            var exportFolder = profile.GetExportFolder(true);

            if (System.IO.Directory.Exists(exportFolder))
            {
                return(System.IO.Directory.EnumerateFiles(exportFolder, "*", SearchOption.TopDirectoryOnly)
                       .OrderBy(x => x)
                       .ToList());
            }

            return(new List <string>());
        }
        public virtual void DeleteExportProfile(ExportProfile profile, bool force = false)
        {
            if (profile == null)
                throw new ArgumentNullException("profile");

            if (!force && profile.IsSystemProfile)
                throw new SmartException(_localizationService.GetResource("Admin.DataExchange.Export.CannotDeleteSystemProfile"));

            int scheduleTaskId = profile.SchedulingTaskId;
            var folder = profile.GetExportFolder();

            _exportProfileRepository.Delete(profile);

            var scheduleTask = _scheduleTaskService.GetTaskById(scheduleTaskId);
            _scheduleTaskService.DeleteTask(scheduleTask);

            _eventPublisher.EntityDeleted(profile);

            if (System.IO.Directory.Exists(folder))
            {
                FileSystemHelper.ClearDirectory(folder, true);
            }
        }
Exemple #8
0
 /// <summary>
 /// Get log file path for an export profile
 /// </summary>
 /// <param name="profile">Export profile</param>
 /// <returns>Log file path</returns>
 public static string GetExportLogPath(this ExportProfile profile)
 {
     return(Path.Combine(profile.GetExportFolder(), "log.txt"));
 }
Exemple #9
0
 /// <summary>
 /// Gets the ZIP path for a profile
 /// </summary>
 /// <param name="profile">Export profile</param>
 /// <returns>ZIP file path</returns>
 public static string GetExportZipPath(this ExportProfile profile)
 {
     return(Path.Combine(profile.GetExportFolder(), profile.FolderName + ".zip"));
 }