void createProductVersion(ProductsModel product, string reason) { ProcessTransaction pt = new ProcessTransaction(); pt.OpenConnection(); pt.BeginTransaction(); try { #region Tạo phiên bản san phẩm ProductVersionModel versionModel = new ProductVersionModel(); versionModel.ProductID = product.ID; versionModel.Reason = reason; versionModel.Version = product.Version + 1; versionModel.ID = (int)pt.Insert(versionModel); #endregion #region Tạo phiên bản bài thực hành của sản phẩm ArrayList lisBaiThucHanh = ProductBaiThucHanhLinkBO.Instance.FindByAttribute("ProductID", product.ID); if (lisBaiThucHanh.Count > 0) { foreach (var item in lisBaiThucHanh) { ProductBaiThucHanhLinkModel thisBTH = (ProductBaiThucHanhLinkModel)item; ProductBaiThucHanhLinkVersionModel bthVersion = new ProductBaiThucHanhLinkVersionModel(); bthVersion.ProductVersionID = versionModel.ID; bthVersion.BaiThucHanhID = thisBTH.BaiThucHanhID; bthVersion.ID = (int)pt.Insert(bthVersion); } } #endregion #region Tạo các phiên bản module sản phẩm ArrayList lisModules = ProductModuleLinkBO.Instance.FindByAttribute("ProductID", product.ID); if (lisModules.Count > 0) { foreach (var item in lisModules) { ProductModuleLinkModel thisModule = (ProductModuleLinkModel)item; ProductModuleLinkVersionModel moduleVersion = new ProductModuleLinkVersionModel(); moduleVersion.ProductVersionID = versionModel.ID; moduleVersion.Code = thisModule.Code; moduleVersion.CVersion = thisModule.CVersion; moduleVersion.Hang = thisModule.Hang; moduleVersion.Name = thisModule.Name; moduleVersion.Qty = thisModule.Qty; moduleVersion.Type = thisModule.Type; moduleVersion.ID = (int)pt.Insert(moduleVersion); } } #endregion #region Tạo phiên bản các file List <string> listFilePath = new List <string>(); ArrayList listFiles = ProductFileBO.Instance.FindByExpression(new Expression("ProductID", product.ID) .And(new Expression("Version", product.Version))); string ftpFolderPath = "Product\\BaiThucHanh\\" + product.Code + "\\" + versionModel.Version; if (!DocUtils.CheckExits(Path.GetDirectoryName(ftpFolderPath))) { DocUtils.MakeDir(Path.GetDirectoryName(ftpFolderPath)); } foreach (var item in listFiles) { ProductFileModel thisFile = (ProductFileModel)item; string path = Path.GetTempPath(); DocUtils.DownloadFile(path, Path.GetFileName(thisFile.Path), thisFile.Path); ProductFileModel file = new ProductFileModel(); file.ProductID = product.ID; file.Name = thisFile.Name; file.Length = thisFile.Length; file.LocalPath = path + "\\" + Path.GetFileName(thisFile.Path); file.Path = ftpFolderPath + "\\" + file.Name; file.Version = versionModel.Version; pt.Insert(file); listFilePath.Add(path + "\\" + Path.GetFileName(thisFile.Path)); } #endregion product.Version += 1; pt.Update(product); pt.CommitTransaction(); MessageBox.Show("Tạo phiên bản bài thực hành thành công!", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); foreach (string filePath in listFilePath) { if (!DocUtils.CheckExits(ftpFolderPath)) { DocUtils.MakeDir(ftpFolderPath); } DocUtils.UploadFile(filePath, ftpFolderPath); } } catch (Exception ex) { MessageBox.Show(ex.Message, TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { pt.CloseConnection(); } }
void createProductVersion(ProductsModel product, string reason) { ProcessTransaction pt = new ProcessTransaction(); pt.OpenConnection(); pt.BeginTransaction(); try { #region Tạo phiên bản san phẩm ProductVersionModel versionModel = new ProductVersionModel(); versionModel.ProductID = product.ID; versionModel.Reason = reason; versionModel.Version = product.Version; versionModel.ID = (int)pt.Insert(versionModel); #endregion #region Tạo phiên bản bài thực hành của sản phẩm ArrayList lisBaiThucHanh = ProductBaiThucHanhLinkBO.Instance.FindByAttribute("ProductID", product.ID); if (lisBaiThucHanh.Count > 0) { foreach (var item in lisBaiThucHanh) { ProductBaiThucHanhLinkModel thisBTH = (ProductBaiThucHanhLinkModel)item; ProductBaiThucHanhLinkVersionModel bthVersion = new ProductBaiThucHanhLinkVersionModel(); bthVersion.ProductVersionID = versionModel.ID; bthVersion.BaiThucHanhID = thisBTH.BaiThucHanhID; bthVersion.ID = (int)pt.Insert(bthVersion); } } #endregion #region Tạo các phiên bản module sản phẩm ArrayList lisModules = ProductModuleLinkBO.Instance.FindByAttribute("ProductID", product.ID); if (lisModules.Count > 0) { foreach (var item in lisModules) { ProductModuleLinkModel thisModule = (ProductModuleLinkModel)item; ProductModuleLinkVersionModel moduleVersion = new ProductModuleLinkVersionModel(); moduleVersion.ProductVersionID = versionModel.ID; moduleVersion.Code = thisModule.Code; moduleVersion.CVersion = thisModule.CVersion; moduleVersion.Hang = thisModule.Hang; moduleVersion.Name = thisModule.Name; moduleVersion.Qty = thisModule.Qty; moduleVersion.Type = thisModule.Type; moduleVersion.ID = (int)pt.Insert(moduleVersion); } } #endregion pt.CommitTransaction(); MessageBox.Show("Tạo phiên bản bài thực hành thành công!", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { pt.CloseConnection(); } }
void save(bool close) { ProcessTransaction pt = new ProcessTransaction(); pt.OpenConnection(); pt.BeginTransaction(); bool isAdd = false; try { if (!ValidateForm()) { return; } Product.ProductGroupID = TextUtils.ToInt(cboGroup.EditValue); Product.Name = txtName.Text.Trim().ToUpper(); Product.Code = txtCode.Text.Trim().ToUpper(); Product.Description = txtDescription.Text.Trim(); Product.Time = TextUtils.ToDecimal(txtTime.Text.Trim()); Product.Priod = cboPriod.Text; Product.Specifications = txtThongSo.Text.Trim(); if (Product.ID == 0) { isAdd = true; Product.Version = 0; Product.ID = (int)pt.Insert(Product); } else { DialogResult result = MessageBox.Show("Bạn có muốn tạo phiên bản cho sản phẩm này trước khi ghi?", TextUtils.Caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { string reason = ""; frmVersionReason frm = new frmVersionReason(); if (frm.ShowDialog() == DialogResult.OK) { reason = frm.Reason; createProductVersion1(Product, reason); } } pt.Update(Product); } #region Bai thực hành for (int i = 0; i < grvBTH.RowCount; i++) { if (TextUtils.ToInt(grvBTH.GetRowCellValue(i, colBID)) == 0) { continue; } try { int id = TextUtils.ToInt(grvBTH.GetRowCellValue(i, colID)); ProductBaiThucHanhLinkModel link; if (id == 0) { link = new ProductBaiThucHanhLinkModel(); } else { link = (ProductBaiThucHanhLinkModel)ProductBaiThucHanhLinkBO.Instance.FindByPK(id); } link.BaiThucHanhID = TextUtils.ToInt(grvBTH.GetRowCellValue(i, colBID)); link.ProductID = Product.ID; if (id == 0) { pt.Insert(link); } else { pt.Update(link); } } catch { } } #endregion #region Module //for (int i = 0; i < grvModule.RowCount; i++) //{ // if (TextUtils.ToInt(grvModule.GetRowCellValue(i, colModuleBTHID)) == 0) continue; // try // { // int id = TextUtils.ToInt(grvModule.GetRowCellValue(i, colLinkID)); // ProductModuleLinkModel link; // if (id == 0) // { // link = new ProductModuleLinkModel(); // } // else // { // link = (ProductModuleLinkModel)ProductModuleLinkBO.Instance.FindByPK(id); // } // link.ProductID = Product.ID; // link.BaiThucHanhID = TextUtils.ToInt(grvModule.GetRowCellValue(i, colModuleBTHID)); // link.ModuleCode = grvModule.GetRowCellValue(i, colModuleCode).ToString(); // if (id == 0) // { // pt.Insert(link); // } // else // { // pt.Update(link); // } // } // catch // { // } //} #endregion #region Module chính for (int i = 0; i < grvModuleLink.RowCount; i++) { int id = TextUtils.ToInt(grvModuleLink.GetRowCellValue(i, colMID)); ProductModuleLinkModel link; if (id == 0) { link = new ProductModuleLinkModel(); } else { link = (ProductModuleLinkModel)ProductModuleLinkBO.Instance.FindByPK(id); } link.ProductID = Product.ID; link.Hang = grvModuleLink.GetRowCellValue(i, colMHang).ToString(); link.Code = grvModuleLink.GetRowCellValue(i, colMCode).ToString(); link.Name = grvModuleLink.GetRowCellValue(i, colMName).ToString(); link.Qty = TextUtils.ToInt(grvModuleLink.GetRowCellValue(i, colMQty)); link.Type = 0; link.CVersion = TextUtils.ToInt(grvModuleLink.GetRowCellValue(i, colMCVersion)); if (id == 0) { link.ID = (int)pt.Insert(link); } else { pt.Update(link); } } #endregion #region Vật tư phụ for (int i = 0; i < grvVT.RowCount; i++) { int id = TextUtils.ToInt(grvVT.GetRowCellValue(i, colMaID)); ProductModuleLinkModel link; if (id == 0) { link = new ProductModuleLinkModel(); } else { link = (ProductModuleLinkModel)ProductModuleLinkBO.Instance.FindByPK(id); } link.ProductID = Product.ID; link.Hang = grvVT.GetRowCellValue(i, colMaHang).ToString(); link.Code = grvVT.GetRowCellValue(i, colMaCode).ToString(); link.Name = grvVT.GetRowCellValue(i, colMaName).ToString(); link.Qty = TextUtils.ToInt(grvVT.GetRowCellValue(i, colMaQty)); link.Type = 1; link.CVersion = TextUtils.ToInt(grvVT.GetRowCellValue(i, colMaCVersion)); if (id == 0) { pt.Insert(link); } else { pt.Update(link); } } #endregion #region File string ftpFolderPath = "Product\\File\\" + Product.Code + "\\" + Product.Version; if (!DocUtils.CheckExits(Path.GetDirectoryName(ftpFolderPath))) { DocUtils.MakeDir(Path.GetDirectoryName(ftpFolderPath)); } List <string> listFilePath = new List <string>(); for (int i = 0; i < grvFile.RowCount; i++) { int id = TextUtils.ToInt(grvFile.GetRowCellValue(i, colFileID)); if (id == 0) { ProductFileModel file = new ProductFileModel(); file.ProductID = Product.ID; file.Name = grvFile.GetRowCellValue(i, colFileName).ToString(); file.Length = TextUtils.ToDecimal(grvFile.GetRowCellValue(i, colFileSize).ToString()); file.LocalPath = grvFile.GetRowCellValue(i, colFileLocalPath).ToString(); file.Path = ftpFolderPath + "\\" + Path.GetFileName(file.LocalPath); file.Version = Product.Version; pt.Insert(file); listFilePath.Add(file.LocalPath); } } #endregion pt.CommitTransaction(); if (listFilePath.Count > 0) { foreach (string filePath in listFilePath) { if (!DocUtils.CheckExits(ftpFolderPath)) { DocUtils.MakeDir(ftpFolderPath); } DocUtils.UploadFile(filePath, ftpFolderPath); } } //if (isAdd) //{ // createProductVersion(Product, "Tạo phiên bản đầu tiên"); //} _isSaved = true; if (close) { this.DialogResult = DialogResult.OK; } else { loadBaiThucHanh(); loadGridMaterial(); loadGridModule(); loadGridFile(); MessageBox.Show("Lưu trữ thành công!", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(ex.Message, TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { pt.CloseConnection(); } }
protected ProductBaiThucHanhLinkFacade(ProductBaiThucHanhLinkModel model) : base(model) { }