Пример #1
0
        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));
        }
Пример #2
0
        /// <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));
        }