abbott_2024_event/BackEnd/api/lineData.ashx.cs

131 lines
4.7 KiB
C#

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
{
/// <summary>
/// lineData 的摘要描述
/// </summary>
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<lineUser>("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<babyData> list = conn.Query<babyData>("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<baby> babyDatas = new List<baby>();
}
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;
}
}
}
}