/// <summary> /// Delete a product on correct product. /// </summary> /// <param name="delstt"></param> /// <returns></returns> public ActionResult deleteproduct(String sttproduct) { // get list product in session. List<ProductMap> listpro = (List<ProductMap>)Session["listproduct"]; List<ProductMap> listerror = (List<ProductMap>)Session["listerror"]; List<List<ProductMap>> listduplicate = (List<List<ProductMap>>)Session["listduplicate"]; ProductMap delpro = new ProductMap(); foreach (ProductMap p in listpro) { if (p.stt.Equals(sttproduct)) { delpro = p; break; } } listpro.Remove(delpro); Session["listproduct"] = listpro; return RedirectToAction("Index"); }
/// <summary> /// Tách tất cả /// </summary> /// <param name="value2"></param> /// <returns></returns> public ActionResult tachtatca(List<String> value2) { List<List<String>> listlon = new List<List<String>>(); for (int i = 1; i < value2.Count; i++) { List<String> listcon = new List<String>(); String[] tablestt = value2[i].ToString().Split('@'); for (int j = 1; j < tablestt.Length; j++) { listcon.Add(tablestt[j]); } listlon.Add(listcon); } for (int h = 0; h < listlon.Count; h++) { //------------------------------------------------------------------------------------------------------------------- // get list product in session. List<ProductMap> listpro = (List<ProductMap>)Session["listproduct"]; List<ProductMap> listerror = (List<ProductMap>)Session["listerror"]; List<List<ProductMap>> listduplicate = (List<List<ProductMap>>)Session["listduplicate"]; ProductMap duplicate = new ProductMap(); for (int i = 0; i < listduplicate.Count; i++) { for (int j = 0; j < listduplicate[i].Count; j++) { // duyệt để tim thấy list có chưa id tách được gửi về. for (int t = 0; t < listlon[h].Count; t++) { if (listduplicate[i][j].stt.ToString().Equals(listlon[h][t].ToString())) { listpro.Add(listduplicate[i][j]); listduplicate[i].Remove(listduplicate[i][j]); } } // kiểm tra trong list nhỏ còn có 1 phần tử thì tách nó luôn cho vào list correct if (listduplicate[i].Count == 1) { listpro.Add(listduplicate[i].First()); listduplicate[i].Remove(listduplicate[i].First()); //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } else if (listduplicate[i].Count == 0) { //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } } } Session["listerror"] = listerror; Session["listduplicate"] = listduplicate; Session["listproduct"] = listpro; //------------------------------------------------------------------------------------------------------------------- } return RedirectToAction("Index"); }
/// <summary> /// gộp tất cả /// </summary> /// <param name="value1"></param> /// <returns></returns> public ActionResult goptatca(List<String> value1) { List<List<String>> listlon = new List<List<String>>(); for (int i = 1; i < value1.Count; i++) { List<String> listcon = new List<String>(); String[] tablestt = value1[i].ToString().Split('@'); for (int j = 1; j < tablestt.Length; j++) { listcon.Add(tablestt[j]); } listlon.Add(listcon); } for (int h = 0; h < listlon.Count; h++) { //-------------------------------------------------------------------------------------------------------------------- List<ProductMap> listpro = (List<ProductMap>)Session["listproduct"]; List<ProductMap> listerror = (List<ProductMap>)Session["listerror"]; List<List<ProductMap>> listduplicate = (List<List<ProductMap>>)Session["listduplicate"]; // lấy tên chính ở cuối list ra và remove string sttTenchinh = listlon[h].Last(); listlon[h].Remove(listlon[h].Last()); // tên sản phẩm gộp string tenmoi = ""; ProductMap sanphamgop = new ProductMap(); int count = 0; for (int i = 0; i < listduplicate.Count; i++) { for (int j = 0; j < listduplicate[i].Count; j++) { // duyệt để tim thấy list có chưa id tách được gửi về. for (int t = 0; t < listlon[h].Count; t++) { if (listduplicate[i][j].stt.ToString().Equals(sttTenchinh)) { count++; tenmoi = listduplicate[i][j].ten; sanphamgop = listduplicate[i][j]; listduplicate[i].Remove(listduplicate[i][j]); } if (listduplicate[i][j].stt.ToString().Equals(listlon[h][t].ToString())) { tenmoi += ";" + listduplicate[i][j].ten; listduplicate[i].Remove(listduplicate[i][j]); } if (listduplicate[i].Count == 0) { break; } } // kiểm tra trong list nhỏ còn có 1 phần tử thì tách nó luôn cho vào list correct if (listduplicate[i].Count == 1) { listpro.Add(listduplicate[i].First()); listduplicate[i].Remove(listduplicate[i].First()); //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } else if (listduplicate[i].Count == 0) { //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } if (count > 0) { break; } } if (count > 0) { break; } } sanphamgop.ten = tenmoi; listpro.Add(sanphamgop); Session["listproduct"] = listpro; Session["listerror"] = listerror; Session["listduplicate"] = listduplicate; //-------------------------------------------------------------------------------------------------------------------- } // string txtName = Request.Params["id"]; // Json(new { Result = String.Format("Fist item in list: '{0}'", value1[0]) }); return RedirectToAction("Index"); }
/// <summary> /// Tách 1 table trùng /// </summary> /// <param name="values"></param> /// <returns></returns> public ActionResult getTach(List<String> valuesTach) { // get list product in session. List<ProductMap> listpro = (List<ProductMap>)Session["listproduct"]; List<ProductMap> listerror = (List<ProductMap>)Session["listerror"]; List<List<ProductMap>> listduplicate = (List<List<ProductMap>>)Session["listduplicate"]; ProductMap duplicate = new ProductMap(); for (int i = 0; i < listduplicate.Count; i++) { for (int j = 0; j < listduplicate[i].Count; j++) { // duyệt để tim thấy list có chưa id tách được gửi về. for (int t = 0; t < valuesTach.Count; t++) { if (listduplicate[i][j].stt.ToString().Equals(valuesTach[t].ToString())) { listpro.Add(listduplicate[i][j]); listduplicate[i].Remove(listduplicate[i][j]); } } // kiểm tra trong list nhỏ còn có 1 phần tử thì tách nó luôn cho vào list correct if (listduplicate[i].Count == 1) { listpro.Add(listduplicate[i].First()); listduplicate[i].Remove(listduplicate[i].First()); //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } else if (listduplicate[i].Count == 0) { //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } } } Session["listerror"] = listerror; Session["listduplicate"] = listduplicate; Session["listproduct"] = listpro; return RedirectToAction("Index"); }
/// <summary> /// Gộp 1 table trùng /// </summary> /// <param name="values"></param> /// <returns></returns> public ActionResult getGop(List<String> values) { List<ProductMap> listpro = (List<ProductMap>)Session["listproduct"]; List<ProductMap> listerror = (List<ProductMap>)Session["listerror"]; List<List<ProductMap>> listduplicate = (List<List<ProductMap>>)Session["listduplicate"]; // lấy tên chính ở cuối list ra và remove string sttTenchinh = values.Last(); values.Remove(values.Last()); // tên sản phẩm gộp string tenmoi = ""; ProductMap sanphamgop = new ProductMap(); int count = 0; for (int i = 0; i < listduplicate.Count; i++) { for (int j = 0; j < listduplicate[i].Count; j++) { // duyệt để tim thấy list có chưa id tách được gửi về. for (int t = 0; t < values.Count; t++) { if (listduplicate[i][j].stt.ToString().Equals(sttTenchinh)) { count++; tenmoi = listduplicate[i][j].ten; sanphamgop = listduplicate[i][j]; listduplicate[i].Remove(listduplicate[i][j]); } if (listduplicate[i][j].stt.ToString().Equals(values[t].ToString())) { tenmoi += ";" + listduplicate[i][j].ten; listduplicate[i].Remove(listduplicate[i][j]); } if (listduplicate[i].Count == 0) { break; } } // kiểm tra trong list nhỏ còn có 1 phần tử thì tách nó luôn cho vào list correct if (listduplicate[i].Count == 1) { listpro.Add(listduplicate[i].First()); listduplicate[i].Remove(listduplicate[i].First()); //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } else if (listduplicate[i].Count == 0) { //Xóa list rỗng trong list bự duplicate listduplicate.Remove(listduplicate[i]); } if (count > 0) { break; } } if (count > 0) { break; } } sanphamgop.ten = tenmoi; listpro.Add(sanphamgop); Session["listproduct"] = listpro; Session["listerror"] = listerror; Session["listduplicate"] = listduplicate; // Json(new { Result = String.Format("Fist item in list: '{0}'", values[0]) }); return RedirectToAction("Index"); }
/// <summary> /// Sản phẩm lỗi đã được sửa. /// </summary> /// <param name="delstt"></param> /// <returns></returns> public ActionResult fixedErrorProduct() { // get list product in session. List<ProductMap> listpro = (List<ProductMap>)Session["listproduct"]; List<ProductMap> listerror = (List<ProductMap>)Session["listerror"]; List<List<ProductMap>> listduplicate = (List<List<ProductMap>>)Session["listduplicate"]; string stt = Request.Params["button"]; string ten = Request.Params["tenpro"]; string tronngso = Request.Params["trongsopro"]; string loai = Request.Params["loaipro"]; // xóa sản phẩm trong list error và cập nhập vào session ProductMap delpro = new ProductMap(); foreach (ProductMap p in listerror) { if (p.stt.Equals(stt)) { delpro = p; break; } } listerror.Remove(delpro); Session["listerror"] = listerror; // xử lý sản phẩm lỗi đã được update. ProductMap update = new ProductMap(); update.stt = stt; update.ten = ten; update.trongso = tronngso; update.loai = loai; // so trùng với correct list và duplicate list List<ProductMap> listtam = new List<ProductMap>(); listtam.Add(update); //Duyệt hết list correct for (int i = 0; i < listpro.Count; i++) { // nếu phát hiện trùng if (similarity(listpro[i].ten.ToString(), update.ten) >= 0.857) { listtam.Add(listpro[i]); listpro.Remove(listpro[i]); } } //Kiểm tra xem list tạm lớn hơn 1 tức là trong correct product có trùng. if (listtam.Count > 1) { listduplicate.Add(listtam); } // trong correct ko trùng thì bay qua list duplicate tìm trùng. else { int count = 0; for (int i = 0; i < listduplicate.Count; i++) { if (similarity(listduplicate[i][0].ToString(), update.ten) >= 0.857) { listduplicate[i].Add(update); count++; break; } } if (count == 0) { listpro.Add(update); } } //update listError and listDuplicate Session["listpro"] = listpro; Session["listduplicate"] = listduplicate; return RedirectToAction("Index"); }