/// <summary> /// Lưu thông tin. /// </summary> /// <param name="inputObject">DataModel</param> /// <returns>DataModel</returns> private SaveDataModel SaveInfo(SaveDataModel inputObject) { // Khởi tạo biến cục bộ var saveResult = new SaveDataModel(); var processDao = new MasterAccomsDao(); // Map dữ liệu DataHelper.CopyObject(inputObject, saveResult); // Lấy đối tượng dữ liệu var dataInfo = inputObject.LocaleModel.DataInfo; var listLocale = inputObject.LocaleModel.ListLocale; // Lấy danh sách dữ liệu đa ngôn ngữ var listLocaleDb = processDao.GetListLocale(dataInfo.AccomCd); // Khởi tạo comparer var comparer = new KeyEqualityComparer<AccomObject>((k1, k2) => k1.AccomCd == k2.AccomCd && k1.LocaleCd == k2.LocaleCd ); // Xử lý tạo transaction var transaction = processDao.CreateTransaction(); // Lưu đối tượng dữ liệu if (inputObject.IsAdd) { // Xử lý insert đối tượng dữ liệu processDao.Insert(dataInfo, transaction); // Duyệt danh sách locale foreach (var info in listLocale) { // Gán dữ liệu cập nhật info.AccomCd = dataInfo.AccomCd; // info.Slug = dataInfo.Slug; info.FileCd = dataInfo.FileCd; info.SortKey = dataInfo.SortKey; info.DeleteFlag = dataInfo.DeleteFlag; // Xử lý insert đối tượng dữ liệu processDao.Insert(info, transaction); } } else { // Xử lý update đối tượng dữ liệu processDao.Update(dataInfo, transaction); // Duyệt danh sách locale foreach (var info in listLocale) { // Gán dữ liệu cập nhật info.AccomCd = dataInfo.AccomCd; // info.Slug = dataInfo.Slug; info.FileCd = dataInfo.FileCd; info.SortKey = dataInfo.SortKey; info.DeleteFlag = dataInfo.DeleteFlag; // Trường hợp không tồn tại dữ liệu if (listLocaleDb.Contains(info, comparer)) { // Xử lý update đối tượng dữ liệu processDao.Update(info, transaction); } else { // Xử lý insert đối tượng dữ liệu processDao.Insert(info, transaction); } } } // Xử lý lưu các thay đổi từ transaction processDao.CommitTransaction(transaction); // Thêm thông báo thành công saveResult.AddMessage("I_MSG_00004"); // Kết quả trả về return saveResult; }
/// <summary> /// Lấy thông tin. /// </summary> /// <param name="inputObject">DataModel</param> /// <returns>DataModel</returns> private InitDataModel GetInfo(InitDataModel inputObject) { // Khởi tạo biến cục bộ var getResult = new InitDataModel(); var processDao = new MasterAccomsDao(); var localeCom = new LocaleCom(); var codeCom = new CodeCom(); var localeModel = new LocaleModel<AccomObject>(); // Map dữ liệu DataHelper.CopyObject(inputObject, getResult); // Lấy ngôn ngữ chuẩn var basicLocale = localeCom.GetDefault(DataComLogics.CD_APP_CD_CLN); // Trường hợp status là edit hoặc copy if (inputObject.IsEdit || inputObject.IsCopy) { // Khởi tạo biến cục bộ var listData = DataHelper.CreateList<AccomObject>(); // Lấy danh sách dữ liệu đa ngôn ngữ var listLocale = processDao.GetListLocale(inputObject.AccomCd); // Khởi tạo biến dùng trong loop var rowNo = 0; var localeName = string.Empty; // Duyệt danh sách dữ liệu đa ngôn ngữ foreach (var info in listLocale) { // Lấy thông tin tên localeName = codeCom.GetName( WebContextHelper.LocaleCd, DataComLogics.GRPCD_CLN_LOCALES, info.LocaleCd, false); // Lấy số dòng if (info.LocaleCd != basicLocale) { info.RowNo = rowNo++; } // Gán thông tin dữ liệu info.LocaleName = localeName; // Xóa thông tin khi sao chép if (inputObject.IsCopy) { info.AccomName = string.Empty; info.SearchName = string.Empty; } // Thêm vào danh sách kết quả listData.Add(info); } // Tiến hành convert đối tượng locale localeModel = DataHelper.ToLocaleModel(basicLocale, listData); } // Khởi tạo giá trị init if (inputObject.IsAdd) { localeModel.DataInfo.AccomCd = DataHelper.GetUniqueKey(); localeModel.DataInfo.AccomName = string.Empty; localeModel.DataInfo.SearchName = string.Empty; // localeModel.DataInfo.Slug = string.Empty; localeModel.DataInfo.FileCd = string.Empty; localeModel.DataInfo.LocaleCd = basicLocale; localeModel.DataInfo.SortKey = decimal.One; localeModel.DataInfo.DeleteFlag = false; if (inputObject.IsAddInit) { localeModel.ListLocale.Clear(); } } // Lấy danh sách code var listLocales = codeCom.GetDiv( WebContextHelper.LocaleCd, DataComLogics.GRPCD_CLN_LOCALES, basicLocale, false, false); var listDeleteFlag = codeCom.GetDivDeleteFlag(WebContextHelper.LocaleCd, false); // Lấy giá trị combo var cbLocales = DataHelper.ToComboItems(listLocales, string.Empty); var cbDeleteFlag = DataHelper.ToComboItems( listDeleteFlag, localeModel.DataInfo.DeleteFlag); // Gán giá trị trả về getResult.BasicLocale = basicLocale; getResult.LocaleModel = localeModel; getResult.CboLocales = cbLocales.ListItems; getResult.CboLocalesSeleted = cbLocales.SeletedValue; getResult.CboDeleteFlag = cbDeleteFlag.ListItems; getResult.LocaleModel.DataInfo.DeleteFlag = cbDeleteFlag.SeletedValueBoolean; // Kết quả trả về return getResult; }