コード例 #1
0
        public static void LoadAuditFileToDb(string fileName, ScanDocHandler scanDocHandler)
        {
            bool TEST_ON_LOCAL_DATA = false;
            bool PROCESS_PDF_FILE = true;
            bool CREATE_RECORD_IN_DB = true;
            Dictionary<string, bool> uniqNamesTest = new Dictionary<string, bool>();

            // Read file
            using (StreamReader sr = new StreamReader(fileName))
            {
                while (sr.Peek() >= 0)
                {
                    string line = sr.ReadLine();
                    string[] fields = line.Split('\t');
                    if ((fields[6] != "OK") || ((fields[5] == "TEST") || (fields[5] == "DELETED")))
                        continue;
                    NewAuditData ad = new NewAuditData();
                    string uniqName = ScanDocInfo.GetUniqNameForFile(fields[4], fields[0]);
                    if (uniqNamesTest.ContainsKey(uniqName))
                    {
                        Console.WriteLine("File {0} UNIQNAME IS NOT UNIQUE", uniqName);
                        continue;
                    }
                    uniqNamesTest.Add(uniqName, true);
                    ad.ProcDateAndTime = fields[0];
                    ad.DocType = fields[1];
                    if (ad.DocType == "")
                    {
                        Console.WriteLine("File {0} BLANK DOC TYPE", uniqName);
                    }
                    ad.OrigFileName = fields[2];
                    ad.UniqName = uniqName;
                    ad.DestFile = fields[3];
                    ad.ArchiveFile = fields[4];
                    if (TEST_ON_LOCAL_DATA)
                        ad.ArchiveFile = ad.ArchiveFile.Replace(@"\\N7700PRO\Archive\ScanAdmin\ScanBackups\", @"C:\Users\Rob\Dropbox\20140227 Train\ScanBackups\");
                    ad.ProcMessage = fields[5];
                    ad.ProcStatus = fields[6];
                    ad.DestOk = File.Exists(ad.DestFile) ? "" : "NO";
                    bool arcvExists = File.Exists(ad.ArchiveFile);
                    if (!arcvExists)
                    {
                        Console.WriteLine("File {0} ARCHIVE FILE missing {1}", uniqName, ad.ArchiveFile);
                        continue;
                    }
                    ad.ArcvOk = arcvExists ? "" : "NO";

                    // Process file
                    if (PROCESS_PDF_FILE)
                    {
                        if (scanDocHandler.ProcessPdfFile(ad.ArchiveFile, uniqName, true, true, true, false, true, true))
                        {
                            // Create filed info record
                            if (CREATE_RECORD_IN_DB)
                            {
                                DateTime docDateFiled = DateTime.ParseExact(ad.ProcDateAndTime, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                                FiledDocInfo fdi = new FiledDocInfo(ad.UniqName);
                                fdi.SetDocFilingInfo(ad.DocType, ad.DestFile.Replace('\\', '/'), docDateFiled, "", "", "", "", DateTime.MinValue, new TimeSpan(), "", "", "");
                                fdi.SetFiledAtInfo(true, docDateFiled, ad.ProcStatus + ", " + ad.ProcMessage, FiledDocInfo.DocFinalStatus.STATUS_FILED);
                                scanDocHandler.AddFiledDocRecToMongo(fdi);
                            }
                        }
                    }
                }
            }

            logger.Info("Finished loading from old log");

            //// Sort to find duplicates
            //bool sortIt = false;
            //if (sortIt)
            //{
            //    var sortedAd = from item in _auditDataColl
            //                   orderby item.UniqName
            //                   select item;

            //    string lastuniq = "";
            //    foreach (AuditData ad in sortedAd)
            //    {
            //        if (lastuniq == ad.UniqName)
            //        {
            //            Console.WriteLine("Duplicate name " + ad.UniqName);
            //        }
            //        lastuniq = ad.UniqName;
            //    }
            //}
            //// Check validity
            //for (int rowidx = 0; rowidx < auditListView.Items.Count; rowidx++)
            //{
            //    AuditData audData = (AuditData)(auditListView.Items[rowidx]);
            //    string destFile = audData.DestFile;
            //    if (File.Exists(destFile))
            //        auditListView.
            //}
        }