public void Import(ImportSetting importSetting) { var stared = DateTime.Now; var importSettingsService = new ImportSettingsService(); importSetting.SetLastStartedAt(DateTime.Now); var folder = importSetting.ContentTypeFolder; var textfolder = ServiceFactory.TextFolderManager.Get(Repository.Current, folder); var dataToImport = GetDataToImport(importSetting); var totalCountStart = dataToImport.Count; var elapsedCount = dataToImport.Count; var importProcessService = new ImportProcessService(); foreach (var data in dataToImport) { var settingNow = importSettingsService.Get(importSetting.UUID); if (!settingNow.Enabled) break; importProcessService.SetProcess(new ImportProcessModel(importSetting.UUID, elapsedCount, totalCountStart, true)); IntegrationProgress.Send(new Progress { Uuid = importSetting.UUID, TotalCount = totalCountStart, ElapsedCount = elapsedCount, StartDate = stared.ToString("HH:mm:ss"), ElapsedTime = (DateTime.Now - stared).ToString(@"hh\:mm\:ss"), Active = true }); ServiceFactory.TextContentManager.Add(Repository.Current, textfolder, data, null, null); elapsedCount--; } importProcessService.SetProcess(new ImportProcessModel(importSetting.UUID)); IntegrationProgress.Send(new Progress { Uuid = importSetting.UUID, TotalCount = totalCountStart, ElapsedCount = elapsedCount, StartDate = stared.ToString("HH:mm:ss"), ElapsedTime = (DateTime.Now - stared).ToString(@"hh\:mm\:ss"), Active = false }); // Remove the thread. importProcessService.GetThreads().Remove(importSetting.UUID); }
public ActionResult StopImport(string uuid) { var importProcessService = new ImportProcessService(); var threads = importProcessService.GetThreads(); if (threads[uuid] != null) { threads[uuid].Abort(); var list = importProcessService.GetThreads(); list.Remove(uuid); importProcessService.SetThreads(list); } importProcessService.SetProcess(new ImportProcessModel(uuid)); return RedirectToAction("Index"); }