예제 #1
0
        /// <summary>
        /// 取得網站成績
        /// </summary>
        /// <param name="pData"></param>
        /// <returns></returns>
        public JsonResult getWebTestResult(EGG_TEST_INFO pData)
        {
            RESPONSE_MSG rm         = new RESPONSE_MSG();
            string       actionName = "getWebTestResult";
            DBLink       link       = new DBLink();
            bool         hasUpdate  = false;
            JsonResult   jr         = null;
            string       LineID     = DateTime.Now.ToString("yyyyMMddHHmmssfff");

            try
            {
                if (this.AnserList.Skip(5).Take(3).Contains(pData.BUY_PLACE))
                {
                    pData.TEMP = this.getNowTemp(pData.BUY_PLACE);
                }
                this.insertRowData(ref pData, ref rm, ref link, LineID);
                pData.DAYS = ((DateTime.Now - DateTime.Parse(pData.BUY_DATE)).Days + 1).ToString();
                hasUpdate  = true;
                this.updateRowData(ref pData, ref hasUpdate, ref rm, ref link, LineID, "");
                jr = this.getTestResult(LineID);
            }
            catch (Exception ex)
            {
                rm.status  = RESPONSE_STATUS.ERROR;
                rm.message = "程式碼發生錯誤";
                LogTool.Fatal(ex, actionName, this.csName);
            }
            return(Json(jr.Data, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
 protected T returnObj <T>(RESPONSE_MSG <T> pRm)
 {
     if (pRm.status != RESPONSE_STATUS.SUCCESS)
     {
         this.throwHttpResponseException(pRm.lastError);
     }
     return(pRm.attachment);
 }
예제 #3
0
        /// <summary>
        /// 檢查是否有此新聞資料
        /// </summary>
        /// <param name="URL"></param>
        /// <returns></returns>
        public JsonResult getEventURL(string URL)
        {
            RESPONSE_MSG rm         = new RESPONSE_MSG();
            string       actionName = "getEventURL";

            try
            {
            }
            catch (Exception ex)
            {
                throw;
            }
            return(Json(rm, JsonRequestBehavior.AllowGet));
        }
예제 #4
0
        /// <summary>
        /// 新增食安事件
        /// </summary>
        /// <param name="pData"></param>
        /// <returns></returns>
        public JsonResult inserEvent(EGG_EVENT_DATA pData)
        {
            RESPONSE_MSG rm         = new RESPONSE_MSG();
            string       actionName = "inserEvent";

            try
            {
            }
            catch (Exception ex)
            {
                throw;
            }
            return(Json(rm, JsonRequestBehavior.AllowGet));
        }
예제 #5
0
        /// <summary>
        /// 檢查紀錄日期
        /// <para>門診病人紀錄單時,只可填寫當天紀錄日期</para>
        /// <para>急診病人紀錄單時,只可填寫急診區間的紀錄日期</para>
        /// </summary>
        /// <param name="setIpdno"></param>
        /// <param name="pRecordDate"></param>
        /// <param name="pPatInfo"></param>
        /// <returns></returns>
        public RESPONSE_MSG saveRecordDateCheck(string setIpdno, string pRecordDate, IPDPatientInfo pPatInfo)
        {
            List <string> msgList = new List <string>();
            RESPONSE_MSG  rm      = new RESPONSE_MSG();

            rm.status = RESPONSE_STATUS.SUCCESS;
            string actionName = "saveRecordDateCheck";

            try
            {
                //記錄單日期不可以大於今天
                if (DateHelper.isDate(pRecordDate) && DateHelper.Parse(pRecordDate) > DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")))
                {
                    msgList.Add("記錄單日期(" + pRecordDate + ")不可大於今天(" + DateTime.Now.ToString("yyyy-MM-dd 23:59:59") + ")");
                }
                if (!string.IsNullOrWhiteSpace(setIpdno))
                {
                    string pIpd_no    = getHistoryList(setIpdno, 0);
                    string pDiag_date = getHistoryList(setIpdno, 1);
                    string endDate    = getHistoryList(setIpdno, 2);
                    string pSource    = getHistoryList(setIpdno, 3);
                }
                else
                {
                    rm.status = RESPONSE_STATUS.ERROR;
                    msgList.Add("取得病患資料失敗!請洽資訊人員");
                    LogTool.SaveLogMessage("setIpdno為空值", actionName, GetLogToolCS.BaseModel);
                }
            }
            catch (Exception ex)
            {
                rm.status  = RESPONSE_STATUS.EXCEPTION;
                rm.message = "存檔檢查發生錯誤,請洽資訊人員";
                LogTool.SaveLogMessage(ex, actionName, GetLogToolCS.BaseModel);
            }
            finally
            {
                if (msgList != null && msgList.Count > 0)
                {
                    rm.status  = RESPONSE_STATUS.ERROR;
                    rm.message = string.Join("\n", msgList);
                }
            }
            return(rm);
        }
예제 #6
0
        }//getTestData

        private void insertRowData(ref EGG_TEST_INFO test_info, ref RESPONSE_MSG rm, ref DBLink link, string LineID)
        {
            test_info.USER_ID     = LineID;
            test_info.CREATE_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            test_info.CREATE_ID   = LineID;
            test_info.CREATE_NAME = LineID;
            test_info.DATASTATUS  = "0";
            string sql_inser = "INSERT INTO EGG_TEST_INFO ('USER_ID', 'CREATE_DATE', 'CREATE_ID', 'CREATE_NAME', 'DATASTATUS') VALUES (@USER_ID, @CREATE_DATE, @CREATE_ID, @CREATE_NAME, @DATASTATUS );";

            link.DBA.DBExecute <DB_EGG_TEST_INFO>(sql_inser, new List <DB_EGG_TEST_INFO>()
            {
                test_info
            });
            if (link.DBA.hasLastError)
            {
                LogTool.Fatal(link.DBA.lastError, "insertRowData", this.csName);
                rm.status  = RESPONSE_STATUS.ERROR;
                rm.message = "程式發生錯誤,請洽資訊人員!";
            }
            else
            {
                rm.attachment = test_info.tempList;
            }
        }
예제 #7
0
        /// <summary>
        /// getTest 取得目前測資料
        /// ex.http://localhost:4803/data/getTestData?LineID=testWeb&msg=蛋蛋測試區
        /// </summary>
        /// <param name="LineID"></param>
        /// <returns></returns>
        public JsonResult getTestData(string LineID = "", string msg = "")
        {
            string       actionName = "getTestData";
            RESPONSE_MSG rm         = new RESPONSE_MSG();

            LogTool.Info(string.Join(",", new List <string>()
            {
                LineID, msg
            }), actionName, this.csName);                                                                 //紀錄log
            EGG_TEST_INFO test_info   = new EGG_TEST_INFO();
            DBLink        link        = new DBLink();
            bool          hasTestData = false;
            bool          hasUpdate   = false;

            try
            {
                #region 取得測試資料
                string            sql = test_info.getSelectList_KEY_USER_ID();
                DynamicParameters dp  = new DynamicParameters();
                dp.Add("USER_ID", LineID);
                List <EGG_TEST_INFO> test_List = new List <EGG_TEST_INFO>();
                #endregion
                test_List = link.DBA.getSqlDataTable <EGG_TEST_INFO>(sql, dp);
                if (msg == "getList")
                {
                    if (test_List.Exists(x => x.DATASTATUS == "0"))
                    {
                        rm.attachment = test_List.Find(x => x.DATASTATUS == "0").tempList;
                    }
                    else
                    {
                        rm.attachment = new List <EGG_TEST_TEMP>();
                    }
                    return(Json(rm, JsonRequestBehavior.AllowGet));
                }
                //是否有使用者資料,且有正在進行中的TEST資料
                if (test_List.Count > 0 && test_List.Exists(x => x.DATASTATUS == "0"))
                {
                    //有資料,且有正在測試的資料
                    hasTestData = true;
                    test_info   = test_List.Find(x => x.DATASTATUS == "0");

                    #region  資料判斷
                    this.updateRowData(ref test_info, ref hasUpdate, ref rm, ref link, LineID, msg);

                    #endregion
                }
                else if (test_List.Count == 0 || !test_List.Exists(x => x.DATASTATUS == "0"))
                {
                    //沒資料,或沒正在測試的資料
                    #region 沒資料判斷
                    if (msg == this.AnserList[0])
                    {
                        //確認是否是開始測驗
                        this.insertRowData(ref test_info, ref rm, ref link, LineID);
                    }
                    else
                    {
                        if (this.AnserList.Contains(msg))
                        {
                            this.insertRowData(ref test_info, ref rm, ref link, LineID);
                            this.updateRowData(ref test_info, ref hasUpdate, ref rm, ref link, LineID, msg);
                            rm.status  = RESPONSE_STATUS.WARN;
                            rm.message = "查無測驗資料,先至功能選單點選蛋蛋測試區!";
                        }
                    } //if
                    #endregion
                }     //if
            }
            catch (Exception ex)
            {
                LogTool.Fatal(ex, actionName, this.csName);
                rm.status  = RESPONSE_STATUS.ERROR;
                rm.message = "程式發生錯誤,請洽資訊人員!";
            }

            return(Json(rm, JsonRequestBehavior.AllowGet));
        }//getTestData
예제 #8
0
        /// <summary>
        /// 取得測試結果
        /// ex.http://localhost:4803/data/getTestResult?LineID=testWeb
        /// </summary>
        /// <param name="LineID"></param>
        /// <returns></returns>
        public JsonResult getTestResult(string LineID = "")
        {
            RESPONSE_MSG rm         = new RESPONSE_MSG();
            string       actionName = "getTestResult";

            LogTool.Info(LineID, actionName, this.csName); //紀錄log
            EGG_TEST_INFO test_info = new EGG_TEST_INFO();
            DBLink        link      = new DBLink();

            try
            {
                #region 取得測試資料
                string            sql = test_info.getSelectList_KEY_USER_ID();
                DynamicParameters dp  = new DynamicParameters();
                dp.Add("USER_ID", LineID);
                List <EGG_TEST_INFO> test_List = new List <EGG_TEST_INFO>();
                #endregion
                test_List = link.DBA.getSqlDataTable <EGG_TEST_INFO>(sql, dp);
                if (test_List.Count > 0)
                {
                    if (test_List.Exists(x => x.DATASTATUS == "0"))
                    {
                        test_info = test_List.Find(x => x.DATASTATUS == "0");
                        if (test_info.tempList.Count == 4)
                        {
                            #region 測試完畢,計算成績
                            rm.message           = "您這一次測試結果如下所示";
                            test_info.DATASTATUS = "1";
                            this.getEggScore(ref test_info);
                            test_info.MODIFY_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                            test_info.MODIFY_ID   = LineID;
                            test_info.MODIFY_NAME = LineID;
                            link.DBA.DBExecute <EGG_TEST_INFO>(test_info.getUpdateSQL_KEY_USER_ID_CREATE_DATE(), new List <EGG_TEST_INFO>()
                            {
                                test_info
                            });
                            if (link.DBA.hasLastError)
                            {
                                rm.status  = RESPONSE_STATUS.ERROR;
                                rm.message = "SQL 發生錯誤,請洽資訊人員!";
                                LogTool.Error(link.DBA.lastError, actionName, this.csName);
                            }
                            else
                            {
                                rm.status     = RESPONSE_STATUS.SUCCESS;
                                rm.attachment = test_info;
                            }
                            #endregion
                        }
                        else
                        {
                            rm.status  = RESPONSE_STATUS.ERROR;
                            rm.message = "上有測驗尚未完成,請選擇功能清單點選測試區,繼續完成!";
                        }
                        rm.attachment = test_info;
                    }
                    else
                    {
                        rm.message    = "您最後一次測試結果如下所示";
                        test_info     = test_List.FindAll(x => x.DATASTATUS == "1").OrderByDescending(x => DateTime.Parse(x.CREATE_DATE)).First();
                        rm.attachment = test_info;
                    }
                }
                else
                {
                    rm.message = "查無測試結果資料,請選擇功能清單點選測試區!";
                }
            }
            catch (Exception ex)
            {
                LogTool.Fatal(ex, actionName, this.csName);
                rm.status  = RESPONSE_STATUS.ERROR;
                rm.message = "程式發生錯誤,請洽資訊人員!";
            }
            return(Json(rm, JsonRequestBehavior.AllowGet));
        }
예제 #9
0
        private void updateRowData(ref EGG_TEST_INFO test_info, ref bool hasUpdate, ref RESPONSE_MSG rm, ref DBLink link, string LineID, string msg)
        {
            #region 更新欄位
            LogTool.Info(Newtonsoft.Json.JsonConvert.SerializeObject(this.AnserList), "updateRowData", "updateRowData");
            //in Key List
            if (this.AnserList.Contains(msg))
            {
                if (msg == this.AnserList[1])
                {
                    test_info.WASH_EGG = "我買的是洗選蛋";                           //"我買的是洗選蛋"
                }
                if (msg == this.AnserList[2])
                {
                    test_info.WASH_EGG = "我買的不是洗選蛋";                          //" "我買的不是洗選蛋"
                }
                if (msg == this.AnserList[3])
                {
                    test_info.STORE = "我把雞蛋放在室溫";                           // "我把雞蛋放在室溫"
                }
                if (msg == this.AnserList[4])
                {
                    test_info.STORE = "我把雞蛋放在冰箱";                          // "我把雞蛋放在冰箱"
                }
                if (msg == this.AnserList[5])
                {
                    test_info.BUY_PLACE = "我在北部";                           // "我在北部"
                }
                if (msg == this.AnserList[6])
                {
                    test_info.BUY_PLACE = "我在中部";                          // "我在中部"
                }
                if (msg == this.AnserList[7])
                {
                    test_info.BUY_PLACE = "我在南部";                           // "我在南部"
                }
                if (this.AnserList.Skip(5).Take(3).Contains(msg))
                {
                    test_info.TEMP = this.getNowTemp(test_info.BUY_PLACE);
                }
                hasUpdate = true;
            }
            //是否是數值
            if (NumberHelper.isInt(msg))
            {
                hasUpdate = true;
                int _days = int.Parse(msg);
                if (Math.Abs(_days) >= 0)
                {
                    test_info.DAYS = msg;
                    rm.attachment  = test_info.tempList;
                }
                else
                {
                    rm.status  = RESPONSE_STATUS.WARN;
                    rm.message = "請輸入1-30任何一個數值!";
                    LogTool.Error(Newtonsoft.Json.JsonConvert.SerializeObject(test_info), "updateRowData", this.csName);
                }
            }

            #endregion

            if (rm.status == RESPONSE_STATUS.SUCCESS)
            {
                if (hasUpdate)
                {
                    test_info.MODIFY_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    test_info.MODIFY_ID   = LineID;
                    test_info.MODIFY_NAME = LineID;
                    link.DBA.DBExecute <EGG_TEST_INFO>(test_info.getUpdateSQL_KEY_USER_ID_CREATE_DATE(), new List <EGG_TEST_INFO>()
                    {
                        test_info
                    });
                }

                if (link.DBA.hasLastError)
                {
                    rm.status  = RESPONSE_STATUS.ERROR;
                    rm.message = "SQL 發生錯誤,請洽資訊人員!";
                    LogTool.Error(link.DBA.lastError, "updateRowData", this.csName);
                }
                else
                {
                    rm.status     = RESPONSE_STATUS.SUCCESS;
                    rm.attachment = test_info.tempList;
                }
            }
        }
 /// <summary>
 /// 設定檔案名稱ㄋ
 /// </summary>
 /// <param name="fileName"></param>
 public exportFile(string fileName)
 {
     csName                = GetLogToolCS.exportFile;
     RESPONSE_MSG          = new RESPONSE_MSG();
     this.FileDownloadName = fileName;
 }