protected void WebUserControl1_btnHandler(string strValue) { #region Image string vimg = ""; string vimg_thumb = ""; string contentDetail = StringExtension.GhepChuoi("", ContentExtendtions.ProcessStringContent(txt_content.Text, hdOldProduct.Value, pic), ContentExtendtions.ProcessStringContent(txtThongSoKyThuat.Text, hdThongSoKyThua.Value, pic), ContentExtendtions.ProcessStringContent(txtVideoGioiThieu.Text, hdVideoGioiThieu.Value, pic), txtXuatXu.Text, txtCongXuat.Text, txtDienAp.Text, txtLuuLuong.Text, txtCotAp.Text, txtTruynDong.Text, txtVatLieu.Text, txtBaoHanh.Text); if (flimg.PostedFile.ContentLength > 0) { string filename = flimg.FileName; string fileex = filename.Substring(filename.LastIndexOf(".")); string path = Request.PhysicalApplicationPath + "/" + pic + "/"; if (ImagesExtension.ValidType(fileex)) { string fileNotEx = StringExtension.ReplateTitle(filename.Remove(filename.LastIndexOf(".") - 1)); if (fileNotEx.Length > 9) { fileNotEx = fileNotEx.Remove(9); } string ticks = DateTime.Now.Ticks.ToString(); #region Lưu ảnh đại diện theo 2 trường hợp: tạo ảnh nhỏ hoặc không. //Kiểm tra xem có tạo ảnh nhỏ hay ko //Nếu không tạo ảnh nhỏ, tên tệp lưu bình thường theo kiểu: tên_tệp.phần_mở_rộng //Nếu tạo ảnh nhỏ, tên tệp sẽ theo kiểu: tên_tệp_HasThumb.phần_mở_rộng //Khi đó tên tệp ảnh nhỏ sẽ theo kiểu: tên_tệp_HasThumb_Thumb.phần_mở_rộng //Với cách lưu tên ảnh này, khi thực hiện lưu vào csdl chỉ cần lưu tên ảnh gốc //khi hiển thị chỉ cần dựa vào tên ảnh gốc để biết ảnh đó có ảnh nhỏ hay không, việc này được thực hiện bởi ImagesExtension.GetImage, lập trình không cần làm gì thêm. if (cbTaoAnhNho.Checked) { vimg = fileNotEx + "_" + ticks + "_HasThumb" + fileex; } else { vimg = fileNotEx + "_" + ticks + fileex; } flimg.SaveAs(path + vimg); #endregion #region Hạn chế kích thước if (cbHanCheKichThuoc.Checked) { ImagesExtension.ResizeImage(path + vimg, "", tbHanCheW.Text, tbHanCheH.Text); } #endregion #region Đóng dấu ảnh if (cbDongDauAnh.Checked) { ImagesExtension.CreateWatermark(path + vimg, path + hdLogoImage.Value, hdViTriDongDau.Value, hdLeX.Value, hdLeY.Value, hdTyLe.Value, hdTrongSuot.Value); } #endregion #region Tạo ảnh nhỏ: Thực hiện cuối để đảm bảo ảnh nhỏ cũng có con dấu if (cbTaoAnhNho.Checked) { vimg_thumb = fileNotEx + "_" + ticks + "_HasThumb_Thumb" + fileex; ImagesExtension.ResizeImage(path + vimg, path + vimg_thumb, tbAnhNhoW.Text, tbAnhNhoH.Text); } #endregion } } else { if (hd_img.Value.Length < 1 || cbLayAnhTuNoiDung.Checked)//nếu không upload ảnh và cũng không có ảnh cũ -> tìm ảnh đầu tiên trong nội dung làm ảnh đại diện { if (hd_img.Value.Length > 0) { TatThanhJsc.Extension.ImagesExtension.DeleteImageWhenDeleteItem(pic, hd_img.Value); } string urlImg = ImagesExtension.GetFirstImageInContent(contentDetail); if (urlImg.Length > 0) { string filename = urlImg; string fileex = filename.Substring(filename.LastIndexOf(".")); string path = Request.PhysicalApplicationPath + "/" + pic + "/"; if (TatThanhJsc.Extension.ImagesExtension.ValidType(fileex)) { string fileNotEx = StringExtension.ReplateTitle(filename.Remove(filename.LastIndexOf(".") - 1)); if (fileNotEx.Length > 9) { fileNotEx = fileNotEx.Remove(9); } string ticks = DateTime.Now.Ticks.ToString(); #region Lưu ảnh đại diện theo 2 trường hợp: tạo ảnh nhỏ hoặc không. //Kiểm tra xem có tạo ảnh nhỏ hay ko //Nếu không tạo ảnh nhỏ, tên tệp lưu bình thường theo kiểu: tên_tệp.phần_mở_rộng //Nếu tạo ảnh nhỏ, tên tệp sẽ theo kiểu: tên_tệp_HasThumb.phần_mở_rộng //Khi đó tên tệp ảnh nhỏ sẽ theo kiểu: tên_tệp_HasThumb_Thumb.phần_mở_rộng //Với cách lưu tên ảnh này, khi thực hiện lưu vào csdl chỉ cần lưu tên ảnh gốc //khi hiển thị chỉ cần dựa vào tên ảnh gốc để biết ảnh đó có ảnh nhỏ hay không, việc này được thực hiện bởi TatThanhJsc.Extension.ImagesExtension.GetImage, lập trình không cần làm gì thêm. if (cbTaoAnhNho.Checked) { vimg = fileNotEx + "_" + ticks + "_HasThumb"; } else { vimg = fileNotEx + "_" + ticks; } if (ImagesExtension.SaveImageFromUrl(path + vimg, urlImg).Length > 0) { vimg += fileex; #region Hạn chế kích thước if (cbHanCheKichThuoc.Checked) { ImagesExtension.ResizeImage(path + vimg, "", tbHanCheW.Text, tbHanCheH.Text); } #endregion #region Đóng dấu ảnh if (cbDongDauAnh.Checked) { ImagesExtension.CreateWatermark(path + vimg, path + hdLogoImage.Value, hdViTriDongDau.Value, hdLeX.Value, hdLeY.Value, hdTyLe.Value, hdTrongSuot.Value); } #endregion #region Tạo ảnh nhỏ: Thực hiện cuối để đảm bảo ảnh nhỏ cũng có con dấu if (cbTaoAnhNho.Checked) { vimg_thumb = fileNotEx + "_" + ticks + "_HasThumb_Thumb" + fileex; ImagesExtension.ResizeImage(path + vimg, path + vimg_thumb, tbAnhNhoW.Text, tbAnhNhoH.Text); } #endregion } else { vimg = ""; } #endregion } } } } #endregion #region file // file Catalog string fileNameCatalog = ""; string fileLink = txtLinkCatalog.Text; if (fileCatalog.PostedFile.ContentLength > 0) { string filename = fileCatalog.FileName; string fileex = filename.Substring(filename.LastIndexOf(".")); string path = Request.PhysicalApplicationPath + "/" + pic + "/"; string fileNotEx = StringExtension.ReplateTitle(filename.Remove(filename.LastIndexOf(".") - 1)); if (fileNotEx.Length > 9) { fileNotEx = fileNotEx.Remove(9); } // lấy giá trị random, tránh trường hợp đường dẫn trùng nhau string ticks = DateTime.Now.Ticks.ToString(); #region Lưu tệp đính kèm fileNameCatalog = fileNotEx + "_" + ticks + fileex; fileCatalog.SaveAs(path + fileNameCatalog); #endregion } //file Document string fileNameDocument = ""; string fileLinkCatalog = txtLinkDocument.Text; if (fileDocument.PostedFile.ContentLength > 0) { string filename = fileDocument.FileName; string fileex = filename.Substring(filename.LastIndexOf(".")); string path = Request.PhysicalApplicationPath + "/" + pic + "/"; string fileNotEx = StringExtension.ReplateTitle(filename.Remove(filename.LastIndexOf(".") - 1)); if (fileNotEx.Length > 9) { fileNotEx = fileNotEx.Remove(9); } // lấy giá trị random, tránh trường hợp đường dẫn trùng nhau string ticks = DateTime.Now.Ticks.ToString(); #region Lưu tệp đính kèm fileNameDocument = fileNotEx + "_" + ticks + fileex; fileDocument.SaveAs(path + fileNameDocument); #endregion } #endregion #region Status string status = "0"; string conhang = "0"; string hangmoi = "0"; if (chk_status.Checked == true) { status = "1"; } if (ckbConHang.Checked) { conhang = "1"; } if (ckCheckHot.Checked) { hangmoi = "1"; } #endregion #region Time Create Date string timeCreateDate = ""; timeCreateDate = txtCreateDate.Text; #endregion #region Seo if (textLinkRewrite.Text.Trim().Equals("")) { textLinkRewrite.Text = txt_title.Text; } if (textTagTitle.Text.Trim().Equals("")) { textTagTitle.Text = txt_title.Text; } if (textTagKeyword.Text.Trim().Equals("")) { textTagKeyword.Text = txt_title.Text; } if (textTagDescription.Text.Trim().Equals("")) { textTagDescription.Text = txt_description.Text; } #endregion string viparams = StringExtension.GhepChuoi("", tbThongSo.Text, conhang, hangmoi); // Check lưu file Document and catalog if (fileNameCatalog.Equals("")) { fileNameCatalog = hdFileCatalog.Value; } if (fileNameDocument.Equals("")) { fileNameDocument = hdFileDocument.Value; } string viUrl = StringExtension.GhepChuoi("", fileNameCatalog, txtLinkCatalog.Text, fileNameDocument, txtLinkDocument.Text); #region Insert if (insert) { GroupsItems.InsertItemsGroupsItems(language, app, tbKey.Text, txt_title.Text, txt_description.Text, contentDetail, vimg, viUrl, tbThuongHieu.Text, textTagTitle.Text, textLinkRewrite.Text, StringExtension.ReplateTitle(textLinkRewrite.Text), textTagKeyword.Text, textTagDescription.Text, txtXuatXu.Text, "", "", viparams, tbPrice.Text, tbPriceOld.Text, "", "", timeCreateDate, DateTime.Now.ToString(), DateTime.Now.ToString(), tbOrder.Text, ddl_group_product.SelectedValue, timeCreateDate, DateTime.Now.ToString(), DateTime.Now.ToString(), tbOrder.Text, status); #region Lay ra iid cua item vua duoc luu condition = DataExtension.AndConditon( ItemsTSql.GetItemsByDicreatedate(timeCreateDate), ItemsTSql.GetItemsByViapp(app)); DataTable dtInsertedItems = new DataTable(); dtInsertedItems = GroupsItems.GetAllData("1", "Items.iid", condition, ItemsColumns.IidColumn + " desc"); if (dtInsertedItems.Rows.Count > 0) { iid = dtInsertedItems.Rows[0][ItemsColumns.IidColumn].ToString(); } #endregion } #endregion #region Update else { if (vimg.Equals("")) { vimg = hd_img.Value; } else { ImagesExtension.DeleteImageWhenDeleteItem(pic, hd_img.Value); } GroupsItems.DeleteGroupsItems(GroupsItemsTSql.GetByIgiid(hdigi_id.Value)); GroupsItems.UpdateItemsGroupsItems(language, app, tbKey.Text, txt_title.Text, txt_description.Text, contentDetail, vimg, viUrl, tbThuongHieu.Text, textTagTitle.Text, textLinkRewrite.Text, StringExtension.ReplateTitle(textLinkRewrite.Text), textTagKeyword.Text, textTagDescription.Text, txtXuatXu.Text, "", "", viparams, tbPrice.Text, tbPriceOld.Text, "", HdIitotalview.Value, timeCreateDate, DateTime.Now.ToString(), DateTime.Now.ToString(), tbOrder.Text, ddl_group_product.SelectedValue, timeCreateDate, DateTime.Now.ToString(), DateTime.Now.ToString(), tbOrder.Text, status, iid); } #endregion #region Thêm vào các danh mục khác //string igparentsid = ""; //foreach (ListItem item in cbListCates.Items) //{ // if(item.Selected && item.Value != ddl_group_product.SelectedValue) // { // igparentsid = GetParentsId(item.Value); // GroupsItems.InsertGroupsItems(item.Value, iid, igparentsid, DateTime.Now.ToString(), // DateTime.Now.ToString(), DateTime.Now.ToString(), tbOrder.Text); // } //} #endregion #region Properties-Chi thực hiện khi chức năng Quản lý thuộc tính được hiển thị if (ProductConfig.KeyHienThiQuanLyThuocTinhSanPham) { string properties = parramSpitString; for (int i = 0; i < rptProperties.Items.Count; i++) { CheckBox checkBoxProperties = (CheckBox)rptProperties.Items[i].FindControl("checkBoxProperties"); if (checkBoxProperties.Checked == true) { properties += checkBoxProperties.ToolTip + parramSpitString; } } condition = DataExtension.AndConditon( SubitemsTSql.GetSubitemsByIid(iid), SubitemsTSql.GetSubitemsByVskey(propertyModul)); fields = DataExtension.GetListColumns(SubitemsColumns.IsidColumn, SubitemsColumns.VscontentColumn); DataTable dt = new DataTable(); dt = Subitems.GetSubItems("", fields, condition, ""); if (dt.Rows.Count > 0) { string isid = dt.Rows[0][SubitemsColumns.IsidColumn].ToString(); //Cap nhat Subitems.UpdateSubitems(iid, language, propertyModul, "", properties, "", "", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "1", isid); } else { //Them moi Subitems.InsertSubitems(iid, language, propertyModul, "", properties, "", "", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "1"); } } #endregion #region Nicks - Chỉ hiển thị khi chức năng add nick được hiển thị if (ProductConfig.KeyHienThiAddNickChoSanPham) { string nicks = parramSpitString; for (int i = 0; i < rptNicks.Items.Count; i++) { CheckBox checkBoxNicks = (CheckBox)rptNicks.Items[i].FindControl("checkBoxNicks"); if (checkBoxNicks.Checked == true) { nicks += checkBoxNicks.ToolTip + parramSpitString; } } condition = DataExtension.AndConditon( SubitemsTSql.GetSubitemsByIid(iid), SubitemsTSql.GetSubitemsByVskey(TatThanhJsc.OtherModul.CodeApplications.SupportOnline)); fields = DataExtension.GetListColumns(SubitemsColumns.IsidColumn, SubitemsColumns.VscontentColumn); DataTable dt = new DataTable(); dt = Subitems.GetSubItems("", fields, condition, ""); if (dt.Rows.Count > 0) { string isid = dt.Rows[0][SubitemsColumns.IsidColumn].ToString(); //Cap nhat Subitems.UpdateSubitems(iid, language, TatThanhJsc.OtherModul.CodeApplications.SupportOnline, "", nicks, "", "", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "1", isid); } else { //Them moi Subitems.InsertSubitems(iid, language, TatThanhJsc.OtherModul.CodeApplications.SupportOnline, "", nicks, "", "", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "1"); } } #endregion #region FilterProperties - Chỉ hiển thị khi tính năng lọc sản phẩm được hiển thị if (ProductConfig.KeyHienThiThuocTinhLocSanPham) { string filterProperties = parramSpitString; for (int i = 0; i < rptParentFilter.Items.Count; i++) { RadioButtonList rdblListAnswer = (RadioButtonList)rptParentFilter.Items[i].FindControl("rdblAnswer"); if (rdblListAnswer != null) { if (rdblListAnswer.SelectedValue.Length > 0) { filterProperties += rdblListAnswer.SelectedValue + parramSpitString; } } CheckBoxList cblListAnswer = (CheckBoxList)rptParentFilter.Items[i].FindControl("cblAnswer"); if (cblListAnswer != null) { for (int j = 0; j < cblListAnswer.Items.Count; j++) { if (cblListAnswer.Items[j].Selected == true) { filterProperties += cblListAnswer.Items[j].Value + parramSpitString; } } } } condition = DataExtension.AndConditon( SubitemsTSql.GetSubitemsByIid(iid), SubitemsTSql.GetSubitemsByVskey(CodeApplications.ProductFilterProperties)); fields = DataExtension.GetListColumns(SubitemsColumns.IsidColumn, SubitemsColumns.VscontentColumn); DataTable dt = new DataTable(); dt = Subitems.GetSubItems("", fields, condition, ""); if (dt.Rows.Count > 0) { string isid = dt.Rows[0][SubitemsColumns.IsidColumn].ToString(); //Cap nhat Subitems.UpdateSubitems(iid, language, CodeApplications.ProductFilterProperties, "", filterProperties, "", "", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "1", isid); } else { //Them moi Subitems.InsertSubitems(iid, language, CodeApplications.ProductFilterProperties, "", filterProperties, "", "", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "1"); } } #endregion #region After Insert/Update if (ckbContinue.Checked == true) { //ScriptManager.RegisterStartupScript(this, this.GetType(), "alertSuccess", // "ThongBao(3000,'Đã tạo: " + txt_title.Text + "');", true); //Lưu vào session để gọi đến bên api Session["CotinuteCreate"] = true; Session["CotinuteCreateTitle"] = txt_title.Text; ResetControls(); } else { Session["CotinuteCreate"] = false; Session["CotinuteCreateRedirectLink"] = LinkRedrect(); } #endregion }