Пример #1
0
        /// <summary>
        /// <strong> only release mode will ignore other will throw exception </strong>
        /// </summary>
        private Pdf1099K ExtractFile(KeyValuePair <string, string> file, Extract1099KEntities ctx)
        {
            Pdf1099K file1099k = null;

#if (!DEBUG)
            try
            {
#endif
            string content = FileUtil.GetPdfContent(file.Value);
            // file1099k = File1099KParser.Parse(content);
            file1099k = _parser.Parse <Pdf1099K>(content);

            file1099k.FileName     = file.Key;
            file1099k.FileLocation = file.Value;
            file1099k.PDFContent   = File.ReadAllBytes(file.Value);
            file1099k.Save(ctx, "Steven Wu");
            logger.Info($"File {file.Key} extract succeed! ID: {file1099k.ID}");
#if (!DEBUG)
        }

        catch (Exception ex)
        {
            logger.Info($"Extract file {file.Key} failed check log file for more detail!");
            logger.Error(ex, $"=========== Extract *{file.Key}* failed exception===========");
            ctx.SaveChanges();
        }
#endif
            return(file1099k);
        }
Пример #2
0
 public void TestInContext()
 {
     using (var ctx = new Extract1099KEntities())
     {
         var testfile = ctx.Pdf1099K.FirstOrDefault();
         testfile.Save(ctx);
         ctx.SaveChanges();
         Assert.IsTrue(DateTime.Now.Subtract(testfile.UpdateAt.Value) < TimeSpan.FromSeconds(3));
     }
 }
Пример #3
0
 public void SaveMutipleTime()
 {
     using (var ctx = new Extract1099KEntities())
     {
         var testfile  = Pdf1099K.GetByTaxYearAndID(2012, "113019324").FirstOrDefault();
         var federalID = testfile.FederalID;
         testfile.FederalID = "xxxxxxx";
         testfile.Save(ctx);
         ctx.SaveChanges();
         var savedFile = Pdf1099K.GetByTaxYearAndID(2012, "113019324").FirstOrDefault();
         Assert.AreEqual("xxxxxxx", testfile.FederalID);
         testfile.FederalID = federalID;
         testfile.Save(ctx);
         ctx.SaveChanges();
         savedFile = Pdf1099K.GetByTaxYearAndID(2012, "113019324").FirstOrDefault();
         Assert.AreEqual(federalID, testfile.FederalID);
     }
 }
Пример #4
0
        public List <Pdf1099K> Extract()
        {
            // steps was follow up
            // read files under folder with patten
            // call 1099 k file  parser to parse from get data to fields
            // save PDF file to database return saved file with IDs
            using (var ctx = new Extract1099KEntities())
            {
                Dictionary <string, string> totalFiles = FileUtil.Search(_folder, _pdfPattern);
                List <Pdf1099K>             files      = totalFiles
                                                         .Select((kv) => ExtractFile(kv, ctx))
                                                         .Where(f => f != null)
                                                         .ToList();

                ctx.SaveChanges();
                logger.Info($"=== Extract {files.Count}/{totalFiles.Count}(succeed/total) files===");
                return(files);
            }
        }