protected void btnUpload_Click(object sender, EventArgs e) { try { if (Session["ProcessingFileId"] != null) { throw new Exception("Order processing alreday in Progress...s"); } string uniqueFileName = Guid.NewGuid().ToString(); string filePath = Server.MapPath("~\\Uploads\\" + uniqueFileName + ".csv"); /*Save the file in temporary location*/ this.fleCustomerData.SaveAs(filePath); OMRequest request = new OMRequest(); request.fileName = this.fleCustomerData.FileName; request.filePath = filePath; request.property = System.Configuration.ConfigurationManager.AppSettings["Property"]; request.url = System.Configuration.ConfigurationManager.AppSettings["API URL"]; Session["ProcessingFileId"] = uniqueFileName; /*ABout to start processing so, disable fields to prevent subsequent request*/ DisableFields(); Thread newThread = new Thread(MakeOredr); newThread.Start(request); } catch (Exception exp) { this.lblStatus.Text = exp.Message; } }
private void MakeOredr(Object request) { OMRequest omRequest = (OMRequest)request; StreamReader reader = new StreamReader(omRequest.filePath); string currentLine; StreamWriter logFileStream = File.AppendText(omRequest.filePath.Replace(".csv", ".log")); logFileStream.Write("PROCESS STARTED<br/>"); int recordCount = 0; while ((currentLine = reader.ReadLine()) != null) { recordCount++; string[] sections = currentLine.Split(','); if (sections == null || sections.Length != 2) { continue; } logFileStream.Write(DateTime.Now.ToString() + " Processing Record " + recordCount.ToString() + " - " + sections[0] + "</br>"); Customer newOrder = new Customer(); newOrder.action = "order created"; newOrder.customer = sections[0]; newOrder.file = omRequest.fileName; newOrder.property = omRequest.property; newOrder.value = sections[1]; EvilAPIManager manager = new EvilAPIManager(omRequest.url); Status status = manager.MakeOrder(newOrder); if (status.added == "true") { Customer customer = manager.Check(status.hash); if (customer != null) { logFileStream.Write(DateTime.Now.ToString() + " Completed successfully</br>"); } else { logFileStream.Write(DateTime.Now.ToString() + " Failed to chek the details.</br>"); } } else { logFileStream.Write(DateTime.Now.ToString() + " Order creation failed</br>"); } logFileStream.Flush(); } logFileStream.Write("PROCESS COMPLETED"); logFileStream.Close(); }