public ActionResult Add(string serial, string correlative, string customer, string NIT, string date, string purchaseDescription, string total) { BinaryTree <Invoice> InvoiceTree; if (Session["InvoiceTree"] != null) { InvoiceTree = (BinaryTree <Invoice>)Session["InvoiceTree"]; } else { InvoiceTree = new BinaryTree <Invoice>(); } Invoice InvoiceObj = null; if (serial != null) { InvoiceObj = new Invoice(serial, correlative, customer, NIT, date, purchaseDescription, total); } else { InvoiceObj = new Invoice(correlative, customer, NIT, date, purchaseDescription, total); } InvoiceTree.Insert(InvoiceObj, Invoice.compareInvoices); Session["InvoiceTree"] = InvoiceTree; return(View("Index", Session["InvoiceTree"])); }
[HttpPost] //Since user is retrieving data public ActionResult ReadInvoice(HttpPostedFileBase uploadedFile) { BinaryTree <Invoice> InvoiceTree; // If there's already a tree, we work on it. Otherwise, we create a new one. if (Session["InvoiceTree"] != null) { InvoiceTree = (BinaryTree <Invoice>)Session["InvoiceTree"]; } else { InvoiceTree = new BinaryTree <Invoice>(); } if (uploadedFile == null) { return(View("Index")); } StreamReader reader = new StreamReader(uploadedFile.InputStream); string line = ""; if (uploadedFile != null && uploadedFile.ContentLength > 0) { while ((line = reader.ReadLine()) != null) { var information = line.Split(','); Invoice InvoiceObj = null; if (information.Length == 7) //means there's specific serial in the parameters { int total = -1; //Data validation try { total = int.Parse(information[6]); } catch (Exception) { } InvoiceObj = new Invoice(information[0], information[1], information[2], information[3], information[4], information[5], information[6]); } else if (information.Length == 6) // means no serial in the parameteres, there will be a random one. { int total = -1; //Data validation try { total = int.Parse(information[7]); } catch (Exception) { } InvoiceObj = new Invoice(information[0], information[1], information[2], information[3], information[4], information[5]); } InvoiceTree.Insert(InvoiceObj, (Invoice x, Invoice y) => (x.serial + x.correlative).CompareTo(y.serial + y.correlative)); } } Session["InvoiceTree"] = InvoiceTree; return(View("Index", Session["InvoiceTree"])); }