/// <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 MasterToursDao(); // 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.TourCd); // Khởi tạo comparer var comparer = new KeyEqualityComparer<TourObject>((k1, k2) => k1.TourCd == k2.TourCd && 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); processDao.InsertMeta(dataInfo, transaction); // Duyệt danh sách locale foreach (var info in listLocale) { // Gán dữ liệu cập nhật info.TourCd = dataInfo.TourCd; 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); processDao.InsertMeta(info, transaction); } } else { // Xử lý update đối tượng dữ liệu processDao.Update(dataInfo, transaction); processDao.UpdateMeta(dataInfo, transaction); // Duyệt danh sách locale foreach (var info in listLocale) { // Gán dữ liệu cập nhật info.TourCd = dataInfo.TourCd; 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); processDao.UpdateMeta(info, transaction); } else { // Xử lý insert đối tượng dữ liệu processDao.Insert(info, transaction); processDao.InsertMeta(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 MasterToursDao(); var masterDataCom = new MasterDataCom(); var localeCom = new LocaleCom(); var codeCom = new CodeCom(); var localeModel = new LocaleModel<TourObject>(); // 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 metaCom = new MetaCom(); var listData = DataHelper.CreateList<TourObject>(); // Lấy danh sách dữ liệu đa ngôn ngữ var listLocale = processDao.GetListLocale(inputObject.TourCd); // 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 thông tin meta var metaInfo = metaCom.GetInfo( info.LocaleCd, W150901Logics.GRPMETA_MA_TOURS, info.TourCd, true); // Lấy số dòng if (info.LocaleCd != basicLocale) { info.RowNo = rowNo++; } // Gán thông tin dữ liệu info.LocaleName = localeName; info.MetaTitle = metaInfo.MetaTitle; info.MetaDesc = metaInfo.MetaDesc; info.MetaKeys = metaInfo.MetaKeys; // Xóa thông tin khi sao chép if (inputObject.IsCopy) { info.TourName = 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.TourCd = DataHelper.GetUniqueKey(); localeModel.DataInfo.TourName = 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; }