using Nancy;
using Learun.Util;
using System.Collections.Generic;
using Learun.Application.TwoDevelopment.EducationalAdministration;
namespace Learun.Application.WebApi
{
    /// <summary>
    /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 
    /// Copyright (c) 2013-2018 北京泉江科技有限公司 
    /// 创 建:超级管理员
    /// 日 期:2020-01-17 15:31
    /// 描 述:学生消费记录
    /// </summary>
    public class StuConsumptionApi : BaseApi
    {
        private StuConsumptionIBLL stuConsumptionIBLL = new StuConsumptionBLL();

        /// <summary>
        /// 注册接口
        /// <summary>
        public StuConsumptionApi()
            : base("/Learun/adms/EducationalAdministration/StuConsumption")
        {
            Get["/pagelist"] = GetPageList;
            Get["/list"] = GetList;
            Get["/form"] = GetForm;
            Post["/delete"] = DeleteForm;
            Post["/save"] = SaveForm;
        }
        #region  获取数据

        /// <summary>
        /// 获取页面显示列表分页数据
        /// <summary>
        /// <param name="_"></param>
        /// <returns></returns>
        public Response GetPageList(dynamic _)
        {
            ReqPageParam parameter = this.GetReqData<ReqPageParam>();
            var data = stuConsumptionIBLL.GetPageList(parameter.pagination, parameter.queryJson);
            var jsonData = new
            {
                rows = data,
                total = parameter.pagination.total,
                page = parameter.pagination.page,
                records = parameter.pagination.records
            };
            return Success(jsonData);
        }
        /// <summary>
        /// 获取页面显示列表数据
        /// <summary>
        /// <param name="_"></param>
        /// <returns></returns>
        public Response GetList(dynamic _)
        {
            string queryJson = this.GetReqData();
            var data = stuConsumptionIBLL.GetList(queryJson);
            return Success(data);
        }
        /// <summary>
        /// 获取表单数据
        /// <summary>
        /// <param name="_"></param>
        /// <returns></returns>
        public Response GetForm(dynamic _)
        {
            string keyValue = this.GetReqData();
            var StuConsumptionData = stuConsumptionIBLL.GetStuConsumptionEntity( keyValue );
            var jsonData = new {
                StuConsumption = StuConsumptionData,
            };
            return Success(jsonData);
        }
        #endregion

        #region  提交数据

        /// <summary>
        /// 删除实体数据
        /// <param name="_"></param>
        /// <summary>
        /// <returns></returns>
        public Response DeleteForm(dynamic _)
        {
            string keyValue = this.GetReqData();
            stuConsumptionIBLL.DeleteEntity(keyValue);
            return Success("删除成功!");
        }
        /// <summary>
        /// 保存实体数据(新增、修改)
        /// <param name="_"></param>
        /// <summary>
        /// <returns></returns>
        public Response SaveForm(dynamic _)
        {
            ReqFormEntity parameter = this.GetReqData<ReqFormEntity>();
            StuConsumptionEntity entity = parameter.strEntity.ToObject<StuConsumptionEntity>();
            stuConsumptionIBLL.SaveEntity(this.userInfo,parameter.keyValue,entity);
            return Success("保存成功!");
        }
        #endregion

        #region  私有类

        /// <summary>
        /// 表单实体类
        /// <summary>
        private class ReqFormEntity {
            public string keyValue { get; set; }
            public string strEntity{ get; set; }
        }
        #endregion

    }
}