using Learun.Application.TwoDevelopment.EducationalAdministration;
using Learun.Util;
using Nancy;

namespace Learun.Application.WebApi
{
    /// <summary>
        /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 
        /// Copyright (c) 2013-2018 北京泉江科技有限公司 
        /// 创 建:超级管理员
        /// 日 期:2019-06-20 14:42
        /// 描 述:收件箱
        /// </summary>
    public class SYS_ReceiveMessageApi : BaseApi
    {
        private SYS_ReceiveMessageIBLL sYS_ReceiveMessageIBLL = new SYS_ReceiveMessageBLL();

        /// <summary>
                /// 注册接口
                /// <summary>
        public SYS_ReceiveMessageApi()
: base("/Learun/adms/EducationalAdministration/SYS_ReceiveMessage")
        {
            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 = sYS_ReceiveMessageIBLL.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 = sYS_ReceiveMessageIBLL.GetList(queryJson);
            return Success(data);
        }

        /// <summary>
                /// 获取表单数据
                /// <summary>
                /// <param name="_"></param>
                /// <returns></returns>
        public Response GetForm(dynamic _)
        {
            string keyValue = this.GetReqData();
            var SYS_ReceiveMessageData = sYS_ReceiveMessageIBLL.GetUrlSYS_ReceiveMessageEntity(keyValue);
            var jsonData = new
            {
                SYS_ReceiveMessage = SYS_ReceiveMessageData,
            };
            return Success(jsonData);
        }

        #endregion

        #region  提交数据

        /// <summary>
                /// 删除实体数据
                /// <param name="_"></param>
                /// <summary>
                /// <returns></returns>
        public Response DeleteForm(dynamic _)
        {
            string keyValue = this.GetReqData();
            sYS_ReceiveMessageIBLL.DeleteEntity(keyValue);
            return Success("删除成功!");
        }

        /// <summary>
                /// 保存实体数据(新增、修改)
                /// <param name="_"></param>
                /// <summary>
                /// <returns></returns>
        public Response SaveForm(dynamic _)
        {
            ReqFormEntity parameter = this.GetReqData<ReqFormEntity>();
            SYS_ReceiveMessageEntity entity = parameter.strEntity.ToObject<SYS_ReceiveMessageEntity>();
            sYS_ReceiveMessageIBLL.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
    }
}