protected IHttpActionResult ApiContent <CU>(HttpStatusCode statusCode, IList <CU> data, int resultNumber, bool result = false) { var baseJson = new ApiResponseJsonModel <IList <CU> > { Result = result, ResultNumber = resultNumber }; if (data != null) { var isDataModelList = data.GetType().GetInterfaces().Any(t => t.IsGenericType && t.GetGenericTypeDefinition() == typeof(IList <IJsonDataModelConvert <CU> >)); if (isDataModelList) { var listOfU = (IList <IJsonDataModelConvert <CU> >)data; var list = new List <CU>(); foreach (var item in listOfU) { list.Add(item.ToJsonModel()); } baseJson.Data = list; } else { baseJson.Data = data; } } return(base.Content(statusCode, baseJson)); }
/// <summary> /// 自訂 API 回應,建議如非必要,不需使用此方法做 API 回傳 /// </summary> /// <typeparam name="U">API 所回傳的資料類別名稱,例如:CourseJsonModel</typeparam> /// <param name="statusCode">HTTP 狀態碼 (Http Status Code)</param> /// <param name="data">要回傳的資料物件</param> /// <param name="resultNumber">自定義的回傳狀態碼,如果為成功回傳,大多為 0,或大於 0 的正整數,如果為失敗回傳,則必須設定小於 0 的負整數</param> /// <param name="result">自定義的回傳成功與否的狀態註記</param> /// <returns></returns> protected IHttpActionResult ApiContent <CU>(HttpStatusCode statusCode, CU data, int resultNumber, bool result = false) { var baseJson = new ApiResponseJsonModel <CU> { Result = result, ResultNumber = resultNumber }; if (data != null) { var isJsonDataModel = data.GetType().GetInterfaces().Any(t => t.IsGenericType && t.GetGenericTypeDefinition() == typeof(IJsonDataModelConvert <CU>)); if (isJsonDataModel) { var jsonOfU = (IJsonDataModelConvert <CU>)data; baseJson.Data = jsonOfU.ToJsonModel(); } else { baseJson.Data = data; } } return(base.Content(statusCode, baseJson)); }