protected void Application_Start() { AreaRegistration.RegisterAllAreas(); ImportWorker worker = new ImportWorker(); Task control = Task.Factory.StartNew(()=>worker.Control()); Task doWork = Task.Factory.StartNew(() => worker.DoWork()); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); }
public static bool PeformWoDeleteImport(ImportWorker worker) { string fileName = "WoDelete(1)({0}).xls"; return PeformImport(fileName, "WO", true,worker); }
public static bool PeformWoInsertImport(ImportWorker worker) { string fileName = "WoInsert(1)({0}).xls"; return PeformImport(fileName, "WO", false,worker); }
private static bool PeformImport(string fileName,string Type, bool deleted, ImportWorker worker) { //string fileName = "WoDelete(1)({0}).xls"; //worker.Tick(); for (int i = 0; i < 1000; i++) if (!File.Exists(Constants.ImportFolder + string.Format(fileName, i))) { fileName = string.Format(fileName, i); break; } //получаем статусы var statModel = GetStatusHashDictionary(); //получаем данные //var detailData = GetData(true, "WO"); var detailData = GetData(deleted, Type); if (detailData.Count() == 0) return false; var docModel = GetDocumentHashDictionart(detailData); List<List<string>> sheet = PeformConvert(statModel, docModel, detailData); //выполняем преобразование //создаем файл string filePath = FileGen(fileName, sheet); if (filePath == null) return false; // копируем файл в прогрузку string endFile = Constants.ImportFolder + Path.GetFileName(fileName); try { if (!Directory.Exists(Path.GetDirectoryName(endFile))) Directory.CreateDirectory(Path.GetDirectoryName(endFile)); File.Copy(filePath, endFile); } catch (Exception exc) { return false; } while (File.Exists(endFile)) { System.Threading.Thread.Sleep(Constants.FileCheckInterval); worker.Tick(); } // ищем // коммитим Commit(detailData); worker.Tick(); return true; }