示例#1
0
 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);
 }
示例#2
0
 public static bool PeformWoDeleteImport(ImportWorker worker)
 {
     string fileName = "WoDelete(1)({0}).xls";
     return PeformImport(fileName, "WO", true,worker);
 }
示例#3
0
 public static bool PeformWoInsertImport(ImportWorker worker)
 {
     string fileName = "WoInsert(1)({0}).xls";
     return PeformImport(fileName, "WO", false,worker);
 }
示例#4
0
        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;
        }