//NM - At a high level, the primary steps should be broken out into their own methods, for instance // LoadConfiguration(); // ProcessTaxDocument(); // WriteToAzure(); // WriteToDatabase(); // // That way people can understand what is going on at a high level without diving deep into the code public Worker() { // NM - Modify this to read these values from a configuration file. Google 'how to use appsettings' CloudStorageAccount csa = CloudStorageAccount.Parse( "DefaultEndpointsProtocol=https;AccountName=cminton;AccountKey=9/z9oCB6lMWHXjxBFEmxB79DUVx0bHF91iHMMjvpX1XXXBMwiJ5+ADpnAQhEhJgtBu8uw9qOtRAq/w2uQT723A=="); CloudBlobClient blobclient = csa.CreateCloudBlobClient(); CloudBlobContainer container = blobclient.GetContainerReference("mycontainer"); string connectionstr = "Server=tcp:cminton.database.windows.net,1433;Database=cmintondb;User ID=cminton;Password=Foopass42;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"; // create a blob object, then get the document blob from azure CloudBlockBlob docblob = container.GetBlockBlobReference("myblob"); docblob.FetchAttributes(); // extract the scan data from the blob TaxDocumentScan tdscan = new TaxDocumentScan(docblob); // create OCRClient and send scan data through OCR // get tax document object with completed fields OCRClient ocr = new OCRClient(); TaxDocument taxdoc = ocr.ProcessTaxDocument(tdscan); // populate azure sql database with tax document fields using (var connection = new SQL.SqlConnection(connectionstr)) { connection.Open(); Console.WriteLine("Connection opened successfully."); UploadTaxDocument(connection, taxdoc); } }
public TaxDocument ProcessTaxDocument(TaxDocumentScan document) { // NM - you may want to rename this variable to something more readable. Typing is cheap whereas understanding // a piece of code is expensive. Something like 'taxDocument'. TaxDocument tdout = new TaxDocument(); tdout.ImportantTaxNumber = 42; tdout.PropertyName = "Six Flags over Atlanta"; tdout.PropertyValue = 988342.37; tdout.TaxRate = 0.51; Console.WriteLine("ProcessTaxDocument called"); Console.WriteLine("blob data: {0}", Encoding.Default.GetString(document.Data)); Console.WriteLine("Returning TaxDocument with params:"); Console.WriteLine("ImportantTaxNumber={0}", tdout.ImportantTaxNumber); Console.WriteLine("PropertyName={0}", tdout.PropertyName); Console.WriteLine("PropertyValue={0}", tdout.PropertyValue); Console.WriteLine("TaxRate={0}", tdout.TaxRate); return(tdout); }