Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
 /// <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;
 }