using CounsellorBL.BLStructure; using log4net; using log4net.Config; using Microsoft.Extensions.Configuration; using MonumentDefine; using Newtonsoft.Json; using OT.COM.SignalerMessage; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace TaskUserConnect { public partial class Form1 : Form { #region 自定義變量區 private readonly static ILog mo_Log = LogManager.GetLogger(typeof(Form1)); private readonly Dictionary dicAppSetting = new Dictionary(); public Form1() { LoadLog4netConfig(); mo_Log.Info("Form1 Constructor start"); InitializeComponent(); GetConfig(); mo_Log.Info("Form1 Constructor End"); } #endregion #region 頁面事件觸發區 private void Form1_Load(object sender, EventArgs e) { string sMsg = null; mo_Log.Info("Form1 Form1_Load start"); try { _HandlePost(); Thread.Sleep(500); } catch (Exception ex) { sMsg = ex.Message; } if (sMsg != null) { mo_Log.Info($"Form1_Load end with exception. {sMsg}"); } else { mo_Log.Info($"Form1_Load end Success."); } this.Close(); } #endregion #region 私有方法區 #region LoadLog4netConfig /// /// 加載Log4netConfig /// private static void LoadLog4netConfig() { var repository = LogManager.CreateRepository( Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy) ); XmlConfigurator.Configure(repository, new FileInfo("Log4Net.config")); } #endregion #region GetConfig /// /// 取得設定值 /// private void GetConfig() { mo_Log.Info($"Form1 GetConfig start. Current Dir={Directory.GetCurrentDirectory()}"); IConfigurationRoot configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).Build(); IEnumerable ics = configuration.GetSection("appSettings").GetChildren(); foreach (IConfigurationSection ic in ics) { dicAppSetting.Add(ic.Key, ic.Value); } mo_Log.Info("Form1 GetConfig end"); } #endregion private static string _Action(string i_sURL, string i_sAppId, string i_sModule, string i_sMethod, out CResponseMessage o_crpResult, Dictionary i_ldicPara) { string sMsg; CResponseMessage crpResult = null; try { do { SendWebApiRequest swr = new SendWebApiRequest(); CRequestMessage crm = new CRequestMessage() { module = i_sModule, method = i_sMethod, param = i_ldicPara, customparam = new Dictionary() { { BLWording.APP_ID, i_sAppId } }//把appid傳過去 }; CReqestPack crqp = new CReqestPack { Reqs = new List() { new CReqestItem(){ Req = crm } } }; sMsg = swr.RunEncryptRequest(i_sURL, crqp, out string sResult); if (sMsg != null) { mo_Log.Error($"Result = {sMsg}"); break; } else { mo_Log.Info($"Response = {sResult}"); CResponsePack crppResult = JsonConvert.DeserializeObject(sResult); if (crppResult == null) { sMsg = "Covert CResponsePack Fail"; break; } CResponseMessage crp = crppResult.Reps[0]; if (crp.result == EResponseResult.RR_FALSE) { sMsg = crp.msg; break; } crpResult = crp; } } while (false); } catch (Exception ex) { sMsg = ex.Message; } o_crpResult = crpResult; return sMsg; } private string FbCheckToken(string i_sURL,string i_sAppId ,string i_sModule, out CResponseMessage o_crpResult, Dictionary i_dicData, Dictionary i_dicWhere) { mo_Log.Info("FbCheckToken"); Dictionary dicPara = new Dictionary(); dicPara.Add(BLWording.QRY_MASTER, new List>() { new Dictionary() { { BLWording.DATA, i_dicData }, { BLWording.WHEREDATA, i_dicWhere } } }); return _Action(i_sURL, i_sAppId, i_sModule, "FbCheckToken", out o_crpResult, dicPara); } private void _HandlePost() { string sMsg = null; mo_Log.Info("Start _HandlePost"); try { do { string g_apiServer = dicAppSetting["apiserver"]; string strAppId = dicAppSetting["app_id"]; string sServerURL = g_apiServer; string sURL = $"{sServerURL}/Cmd"; mo_Log.Debug("_HandlePost f1"); FbCheckToken(sURL, strAppId, "GROUP.GroupUserConnectService", out CResponseMessage crpArticleWait, null,null); mo_Log.Debug("_HandlePost f2"); } while (false); } catch (Exception ex) { sMsg = $"Process fail. ErrorMsg={ex.Message}"; } if (sMsg != null) { mo_Log.Error(sMsg); } } #endregion } }