|
|
using EasyBL.WebApi.Message; using Entity.Sugar; using SqlSugar; using SqlSugar.Base; using System; using System.Collections.Generic; using System.IO; using System.Linq;
namespace EasyBL.WEBAPP.SYS { public class Language_SetService : ServiceBase { #region 多語系管理(分頁查詢)
/// <summary>
/// 多語系管理(分頁查詢)
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public ResponseMessage QueryPage(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; var db = SugarBase.GetIntance(); try { do { var pml = new PageModel { PageIndex = _fetchInt(i_crm, @"pageIndex"), PageSize = _fetchInt(i_crm, @"pageSize") }; var iPageCount = 0; var sSortField = _fetchString(i_crm, @"sortField"); var sSortOrder = _fetchString(i_crm, @"sortOrder");
var sLanguageType = _fetchString(i_crm, @"LanguageType"); var sCountry = _fetchString(i_crm, @"Country"); var sLanguageId = _fetchString(i_crm, @"LanguageId"); var sLanguageName = _fetchString(i_crm, @"LanguageName"); var bExcel = _fetchBool(i_crm, @"Excel");
pml.DataList = db.Queryable<OTB_SYS_Language>() .Where(x => x.OrgID == i_crm.ORIGID && x.LangId.Contains(sLanguageId) && x.LangName.Contains(sLanguageName)) .WhereIF(!string.IsNullOrEmpty(sLanguageType), x => x.Type == sLanguageType) .WhereIF(!string.IsNullOrEmpty(sCountry), x => x.Country == sCountry) .OrderBy(sSortField, sSortOrder) .ToPageList(pml.PageIndex, bExcel ? 100000 : pml.PageSize, ref iPageCount); pml.Total = iPageCount;
rm = new SuccessResponseMessage(null, i_crm); if (bExcel) { } else { rm.DATA.Add(BLWording.REL, pml); } } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + "Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, "EasyBL.WEBAPP.SYS.ArgumentClassMaintain_QryService", "", "QueryPage(多語系管理(分頁查詢))", "", "", ""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 多語系管理(分頁查詢)
#region 多語系管理(新增)
/// <summary>
/// 多語系管理(新增)
/// </summary>
/// <param name="i_crm">todo: describe i_crm parameter on UpdImportCustomers</param>
/// <returns></returns>
public ResponseMessage GridInsert(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; try { rm = SugarBase.ExecTran(db => { do { var oEntity = _fetchEntity<OTB_SYS_Language>(i_crm);
if (db.Queryable<OTB_SYS_Language>().Any(x => x.OrgID == i_crm.ORIGID && x.Country == oEntity.Country && x.Type == oEntity.Type && x.LangId == oEntity.LangId)) { sMsg = @"該語系ID已存在!"; break; } _setEntityBase(oEntity, i_crm); var iRel = db.Insertable(oEntity).ExecuteCommand(); rm = new SuccessResponseMessage(null, i_crm); rm.DATA.Add(BLWording.REL, iRel); } while (false);
return rm; }); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(Language_SetService), @"多語系管理", @"GridInsert(多語系管理(新增))", @"", @"", @""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 多語系管理(新增)
#region 多語系管理(修改)
/// <summary>
/// 多語系管理(修改)
/// </summary>
/// <param name="i_crm">todo: describe i_crm parameter on UpdImportCustomers</param>
/// <returns></returns>
public ResponseMessage GridUpdate(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; try { rm = SugarBase.ExecTran(db => { do { var oNewEntity = _fetchEntity<OTB_SYS_Language>(i_crm); _setEntityBase(oNewEntity, i_crm); var iRel = db.Updateable(oNewEntity) .IgnoreColumns(x => new { x.NO, x.CreateUser, x.CreateDate }).ExecuteCommand(); rm = new SuccessResponseMessage(null, i_crm); rm.DATA.Add(BLWording.REL, iRel); } while (false);
return rm; }); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(Language_SetService), @"多語系管理", @"GridUpdate(多語系管理(修改))", @"", @"", @""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 多語系管理(修改)
#region 多語系管理(刪除)
/// <summary>
/// 多語系管理(刪除)
/// </summary>
/// <param name="i_crm">todo: describe i_crm parameter on UpdImportCustomers</param>
/// <returns></returns>
public ResponseMessage GridDelete(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; try { rm = SugarBase.ExecTran(db => { do { var iNO = _fetchInt(i_crm, @"NO"); var iRel = db.Deleteable<OTB_SYS_Language>() .Where(x => x.OrgID == i_crm.ORIGID && x.NO == iNO).ExecuteCommand(); rm = new SuccessResponseMessage(null, i_crm); rm.DATA.Add(BLWording.REL, iRel); } while (false);
return rm; }); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(Language_SetService), @"多語系管理", @"GridDelete(多語系管理(刪除))", @"", @"", @""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 多語系管理(刪除)
#region 查詢系統所有html文件路徑
/// <summary>
/// 函式名稱:GetSysHtmlPath
/// 函式說明:查詢系統所有html文件路徑
/// </summary>
/// <param name="i_crm">todo: describe i_crm parameter on GetSysHtmlPath</param>
/// <returns>
/// 回傳 ENTITYS(Object):查詢數據(list),總比數,狀態...
///</returns>
public ResponseMessage GetSysHtmlPath(RequestMessage i_crm) { ResponseMessage crm = null; string sMsg = null; var GetFilesPath = new List<Dictionary<string, string>>(); try { do { var sProgramPath = _fetchString(i_crm, BLWording.FILEPATH);
// 將虛擬路徑轉為實體路徑
sProgramPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, sProgramPath);
// 真實邏輯
foreach (var fi in Directory.GetFiles(sProgramPath, @"*.html", SearchOption.AllDirectories)) { if (fi.ToLower().IndexOf(@"page") > -1) { var dic = new Dictionary<string, string>(); var sPath = fi.Replace(AppDomain.CurrentDomain.BaseDirectory, @"\").Replace(@"\", @"/"); dic.Add(BLWording.ID, sPath); dic.Add(BLWording.NAME, sPath); GetFilesPath.Add(dic); } } foreach (var fi in Directory.GetFiles(sProgramPath, @"*.aspx", SearchOption.AllDirectories)) { if (fi.ToLower().IndexOf(@"page") > -1) { var dic = new Dictionary<string, string>(); var sPath = fi.Replace(AppDomain.CurrentDomain.BaseDirectory, @"\").Replace(@"\", @"/"); dic.Add(BLWording.ID, sPath); dic.Add(BLWording.NAME, sPath); GetFilesPath.Add(dic); } }
crm = new SuccessResponseMessage(null, i_crm);
// 填寫回傳
crm.DATA.Add(BLWording.REL, GetFilesPath); } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(Language_SetService), @"多語系設定", @"GetSysHtmlPath(查詢系統所有html文件路徑)", @"", @"", @""); }
if (null != sMsg) { crm = new ErrorResponseMessage(sMsg, i_crm); }
return crm; }
#endregion 查詢系統所有html文件路徑
#region 複製語系檔案
/// <summary>
/// 函式名稱:CopyLanguage
/// 函式說明:複製語系檔案
/// </summary>
/// <param name="i_crm">todo: describe i_crm parameter on CopyLanguage</param>
/// <returns>
/// 回傳 rm(Object)
///</returns>
public ResponseMessage CopyLanguage(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; var db = SugarBase.GetIntance(); try { do { var sLangFrom = _fetchString(i_crm, @"LangFrom"); var sLangTo = _fetchString(i_crm, @"LangTo"); var saLangFrom = db.Queryable<OTB_SYS_Language>().Where(x => x.OrgID == i_crm.ORIGID && x.Country == sLangFrom).ToList(); var saLangTo = db.Queryable<OTB_SYS_Language>().Where(x => x.OrgID == i_crm.ORIGID && x.Country == sLangTo).ToList();
if (saLangFrom.Count == 0) { sMsg = @"1"; break; }
var ListAdd = new List<OTB_SYS_Language>();
foreach (OTB_SYS_Language oLanguage in saLangFrom) { if (!saLangTo.Any(p => (p.LangId == oLanguage.LangId && p.Type == oLanguage.Type))) { ListAdd.Add(oLanguage); } } if (ListAdd.Count > 0) { foreach (OTB_SYS_Language oLanguage in ListAdd) { oLanguage.Country = sLangTo; oLanguage.Memo = oLanguage.LangName; oLanguage.LangName = sLangTo == @"zh" ? ChineseStringUtility.ToSimplified(oLanguage.LangName) : @""; oLanguage.CreateUser = i_crm.USERID; oLanguage.CreateDate = DateTime.Now; oLanguage.ModifyUser = i_crm.USERID; oLanguage.ModifyDate = DateTime.Now; }
var iRel = db.Insertable(ListAdd).ExecuteCommand();
if (iRel == 0) // 複製失敗
{ sMsg = @"0"; break; } } rm = new SuccessResponseMessage(null, i_crm); //rm.DATA.Add(BLWording.REL, bSend);
} while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + @"Param:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(Language_SetService), @"多語系設定", @"CopyLanguage(複製語系檔案)", @"", @"", @""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 複製語系檔案
} }
|