/// <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); }
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)); } }
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); } }
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); } }