// Clicked CheckOut Link // Buy Product public ActionResult Buy_Product() { List <string> purchase_list = (List <string>)Session["history"]; List <Purchased_Product> purchased_product_lis = new List <Purchased_Product>(); if (purchase_list.Count != 0) { foreach (string pro_id in purchase_list) { using (SqlConnection sql_connection = new SqlConnection(Data.Data.conn)) { sql_connection.Open(); string target_sql_data = "select * from Product where Id=" + pro_id + ";"; SqlCommand sql_cmd = new SqlCommand(target_sql_data, sql_connection); SqlDataReader reader = sql_cmd.ExecuteReader(); while (reader.Read()) { Product pro = new Product() { Id = (int)reader["Id"], name = (string)reader["name"], price = (string)reader["price"], quantity = (string)reader["quantity"], short_description = (string)reader["short_description"], image_path = (string)reader["image_path"], }; Purchased_Product temp_data = new Purchased_Product() { ProductImagePath = pro.image_path, ProductId = pro.Id.ToString(), ProductName = pro.name, ProductDetails = pro.short_description, ProductActivationCode = Guid.NewGuid().ToString(), ProductPurchasedDate = DateTime.Now, }; purchased_product_lis.Add(temp_data); } sql_connection.Close(); } } Add_To_ProductTbl(purchased_product_lis); // WRITE TO TABLE return(RedirectToAction("PurchaseHistory")); } else { return(Content("<h3>Empty List to Write</h3>")); } }
// Read PurchaseHistory public ActionResult PurchaseHistory() { string customer = (string)Session["Correct_User"]; // Read from Purchased Table if (Session["Correct_User"] != null) { List <Purchased_Product> purchased_products_lis = new List <Purchased_Product>(); List <Num_of_Id> id_quantity_lis = new List <Num_of_Id>(); using (SqlConnection sql_connection = new SqlConnection(Data.Data.conn)) { sql_connection.Open(); string target_sql_data = "select * from PurchasedProduct where CustomerId='" + customer + "';"; SqlCommand sql_cmd = new SqlCommand(target_sql_data, sql_connection); SqlDataReader reader = sql_cmd.ExecuteReader(); while (reader.Read()) { Purchased_Product one_purchase_product = new Purchased_Product() { Id = (int)reader["Id"], ProductId = (string)reader["ProductId"], ProductName = (string)reader["ProductName"], ProductDetails = (string)reader["ProductDetails"], ProductImagePath = (string)reader["ProductImagePath"], ProductPurchasedDate = Convert.ToDateTime((string)reader["ProductPurchasedDate"]), ProductActivationCode = (string)reader["ProductActivationCode"], CustomerId = customer }; purchased_products_lis.Add(one_purchase_product); } sql_connection.Close(); } var groupedResult = purchased_products_lis.GroupBy(s => s.ProductId); bool flager = true; foreach (var ageGroup in groupedResult) { List <string> activation_code_lis = new List <string>(); Num_of_Id temp_id_quantity = new Num_of_Id(); temp_id_quantity.ProductId = ageGroup.Key; temp_id_quantity.ProductQuantity = ageGroup.Count().ToString(); foreach (Purchased_Product s in ageGroup) //Each group has a inner collection { if (flager) { temp_id_quantity.ProductName = s.ProductName; temp_id_quantity.ProductDetails = s.ProductDetails; temp_id_quantity.ProductImagePath = s.ProductImagePath; temp_id_quantity.ProductPurchasedDate = s.ProductPurchasedDate; flager = false; } //Debug.WriteLine(s.ProductActivationCode); //Debug.WriteLine("!!!!!!!!!!!!!!!!!!!!**********"); activation_code_lis.Add(s.ProductActivationCode); } temp_id_quantity.ProductActivationCode = activation_code_lis; Debug.WriteLine("*****"); flager = true; id_quantity_lis.Add(temp_id_quantity); activation_code_lis = null; } ViewBag.Purchased_Products_List = id_quantity_lis; } else { return(RedirectToAction("Index")); } return(View()); }