using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.Web.SessionState; using Dapper; using Dapper.Contrib.Extensions; using System.Data.SqlClient; using System.IO.Compression; namespace abbott_2024_event.BackEnd.api { /// /// lineData 的摘要描述 /// public class lineData : IHttpHandler { SqlConnection conn = new SqlConnection(globalClass.appsettings("DBConnectionString")); public authToken authToken; public void ProcessRequest(HttpContext context) { result objRet = new result(); DataContractJsonSerializer json = new DataContractJsonSerializer(objRet.GetType()); context.Response.ContentType = "application/json;charset=utf-8"; context.Response.AddHeader("Access-Control-Allow-Origin", "*"); string acceptEncoding = context.Request.Headers["Accept-Encoding"].ToString().ToUpperInvariant(); if (!String.IsNullOrEmpty(acceptEncoding)) { if (acceptEncoding.Contains("GZIP")) { //输出流头部GZIP压缩 context.Response.AppendHeader("Content-encoding", "gzip"); context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { //输出流头部DEFLATE压缩 context.Response.AppendHeader("Content-encoding", "deflate"); context.Response.Filter = new DeflateStream(context.Response.Filter, CompressionMode.Compress); } } authToken objAuth = new authToken(); if (!objAuth.user_isLogin) { objRet.ret = "no"; objRet.err_code = "0001"; objRet.message = "尚未登入,請登入後使用"; json.WriteObject(context.Response.OutputStream, objRet); return; } string line_uid = (context.Request["line_uid"] == null) ? "" : context.Request["line_uid"].ToString(); lineUser lineUser = conn.QueryFirstOrDefault("select * from lineUser where line_uid = @line_uid", new { line_uid = line_uid }); if (lineUser == null) { objRet.ret = "no"; objRet.err_code = "0002"; objRet.message = "無此Line Uid資料!"; json.WriteObject(context.Response.OutputStream, objRet); return; } List list = conn.Query("select * from babyData where line_uid = @line_uid", new { line_uid = line_uid }).ToList(); objRet.user.line_uid = line_uid; objRet.user.line_displayName = lineUser.line_displayName; objRet.user.line_phone = lineUser.line_phone; foreach (babyData babyData in list) { baby objData = new baby(); objData.baby_uid = babyData.babyData_uid; objData.baby_gender = babyData.babyData_sexual; objData.baby_birthday = babyData.babyData_birthday.ToString("yyyy/MM/dd"); objData.baby_name = babyData.babyData_name; objRet.user.babyDatas.Add(objData); } objRet.ret = "yes"; json.WriteObject(context.Response.OutputStream, objRet); return; } public class result { public string ret = "no"; public string err_code = "0000"; public string message = ""; public userData user = new userData(); } public class userData { public string line_uid { get; set; } = ""; public string line_displayName { get; set; } = ""; public string line_phone { get; set; } = ""; public string testdate { get; set; } = ""; public List babyDatas = new List(); } public class baby { public string baby_uid { get; set; } = ""; public string baby_name { get; set; } = ""; public string baby_gender { get; set; } = ""; public string baby_birthday { get; set; } = ""; public string baby_age { get; set; } = ""; public string baby_months { get; set; } = ""; public string baby_testdate { get; set; } = ""; public string baby_height { get; set; } = ""; public double baby_percent { get; set; } = 0; } public bool IsReusable { get { return false; } } } }