Ejemplo n.º 1
0
        /// <summary>
        /// 新增會員資料
        /// </summary>
        /// <param name="memberInfo"></param>
        /// <returns></returns>
        public static int InsertMemberInfo(Models.Entity.MemberInfo memberInfo)
        {
            Log log = new Log();

            try
            {
                using (var db = new HealthPaltformContext())
                {
                    db.MemberInfo.Add(memberInfo);

                    //log
                    return(db.SaveChanges());
                }
            }
            catch (DbEntityValidationException ex)
            {
                log.Error($"產生與資料庫相關的錯誤\n" +
                          $"Data:{ex.ToString()}");
                return(-999);
            }
        }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request.InputStream.Length <= 0)
                {
                    Response.Clear();
                    Response.ContentType            = "text/plain";
                    Response.StatusCode             = 400;
                    Response.TrySkipIisCustomErrors = true;
                    Response.Write("4001 資料內容格式有誤或超出正常範圍");
                    Response.End();
                    log.Info("4001 資料內容格式有誤或超出正常範圍");
                    return;
                }
                System.Diagnostics.Debug.WriteLine(JsonConvert.SerializeObject(Request.Headers));
                string documentContents;
                using (Stream receiveStream = Request.InputStream)
                {
                    using (StreamReader readStream = new StreamReader(receiveStream, Request.ContentEncoding))
                    {
                        documentContents = readStream.ReadToEnd();
                        //LOG.Debug("IP:" + Request.UserHostAddress);
                        //LOG.Debug(documentContents + Environment.NewLine);
                    }
                }
                System.Diagnostics.Debug.WriteLine(documentContents);
                string[] str = documentContents.Replace("\r\n", "\n").Split('\n');

                Dictionary <string, string> dic = str.Where(x => !x.StartsWith("Feedback")).ToDictionary(x => x.Split('=')[0].Trim(), x => x.Substring(x.IndexOf('=') + 1).Trim());
                if (dic.ContainsKey(string.Empty))
                {
                    dic.Remove(string.Empty);
                }
                ChangeValue(ref dic);

                TaiDocModel     result = DictionaryToObject <TaiDocModel>(dic);
                List <Feedback> fbl    = new List <Feedback>();
                List <string>   dif    = str.Where(x => x.StartsWith("Feedback")).ToList();
                foreach (string d in dif) //解析feedbak內容
                {
                    string t = d.Replace("Feedback", "");
                    t = d.Substring(d.IndexOf('=') + 1).Trim();
                    Dictionary <string, string> fb = t.Replace("@#@", "\n").Split('\n').ToDictionary(x => x.Split('=')[0].Trim(), x => x.Substring(x.IndexOf('=') + 1).Trim());
                    fbl.Add(DictionaryToObject <Feedback>(fb));
                }
                if (fbl.Count > 0)
                {
                    result.Feedback = fbl.ToList();
                }
                var settings = new JsonSerializerSettings()
                {
                    ContractResolver = new NullToEmptyStringResolver()
                };
                string json = JsonConvert.SerializeObject(result, settings);

                log.Info($"TaiDoc解析完成的字串", json);

                #region APIDataSave


                var dbIDNo = DBService.MemberInfo.QueryMemberInfoByIDNo(result.Member_IDNo);

                if (string.IsNullOrEmpty(dbIDNo))
                {
                    log.Info($"新建會員資料");
                    //儲存該筆資料
                    var memberInfo = new Models.Entity.MemberInfo();
                    //取得系統ID
                    var tmpID = ToolLibs.GetDateTimeNowDefaultString();
                    log.Info($"新建的會員資料ID:{tmpID}");
                    #region MemberInfo

                    memberInfo.ID         = tmpID;
                    memberInfo.IDNo       = result.Member_IDNo;
                    memberInfo.Name       = "Test";
                    memberInfo.Genger     = 0;
                    memberInfo.BDate      = DateTime.Now;
                    memberInfo.Tel        = "";
                    memberInfo.Mobile     = "";
                    memberInfo.Email      = "";
                    memberInfo.Fax        = "";
                    memberInfo.Occupation = "";
                    memberInfo.CreateDate = DateTime.Now;

                    #endregion
                    log.Trace("新增會員資料", memberInfo);
                    DBService.MemberInfo.InsertMemberInfo(memberInfo);
                }

                //建立新的測量資料
                var measuerInfo = new Models.Entity.MeasureInfo();

                //傳入身份證字號
                measuerInfo.MemberIDNo = result.Member_IDNo;

                //字串處理,將多餘的 \n \r 去除,並將數據帶入
                measuerInfo.MIData = Regex.Replace(json, @"\n|\r", "");

                //帶入現在時間
                measuerInfo.MIDate = DateTime.Now;

                //新增資料,並紀錄新增後的UID
                var measureInfoID = DBService.MeasureInfo.InsertMeasureInfo(measuerInfo).ToString();

                //將網址帶入的UID加密
                var encryptID = ToolLibs.EncryptDES(measureInfoID, Config.DESKey, Config.DESIV);

                //組出網址
                var encryptCodeURL = $"{Config.BaseURL}MInfo.aspx?UID={encryptID}";

                log.Info($"回傳的網址", encryptCodeURL);

                #endregion



                TransferToTaiDoc(result);

                Response.Clear();
                Response.ContentType = "text/plain";
                Response.StatusCode  = 200;
                Response.Write("200");
                Response.End();

                log.Info($"回傳的結果,Data:200");
            }
        }