using Nancy;
using Learun.Util;
using System.Collections.Generic;
using Learun.Application.TwoDevelopment.EducationalAdministration;
using System;

namespace Learun.Application.WebApi.Modules
{/// <summary> 
 /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园  
 /// Copyright (c) 2013-2018 北京泉江科技有限公司  
 /// 创 建:超级管理员 
 /// 日 期:2019-12-25 10:35 
 /// 描 述:校长信箱 
 /// </summary> 
    public class StuMailApi : BaseApi
    {
        private StuMailIBLL stuMailIBLL = new StuMailBLL();

        /// <summary> 
        /// 注册接口 
        /// <summary> 
        public StuMailApi()
            : base("/Learun/adms/EducationalAdministration/StuMail")
        {
            Get["/pagelist"] = GetPageList;
            Get["/pagelistByUserId"] = GetPageListByUserId;
            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 = stuMailIBLL.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 GetPageListByUserId(dynamic _)
        {
            ReqPageParam parameter = this.GetReqData<ReqPageParam>();
            var data = stuMailIBLL.GetPageListByUserId(parameter.pagination, parameter.queryJson, this.userInfo.userId);
            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 = stuMailIBLL.GetList(queryJson);
            return Success(data);
        }
        /// <summary> 
        /// 获取表单数据 
        /// <summary> 
        /// <param name="_"></param> 
        /// <returns></returns> 
        public Response GetForm(dynamic _)
        {
            string keyValue = this.GetReqData();
            var StuMailData = stuMailIBLL.GetStuMailEntity(keyValue);
            var jsonData = new
            {
                StuMail = StuMailData,
            };
            return Success(jsonData);
        }
        #endregion

        #region  提交数据 

        /// <summary> 
        /// 删除实体数据 
        /// <param name="_"></param> 
        /// <summary> 
        /// <returns></returns> 
        public Response DeleteForm(dynamic _)
        {
            string keyValue = this.GetReqData();
            stuMailIBLL.DeleteEntity(keyValue);
            return Success("删除成功!");
        }
        /// <summary> 
        /// 保存实体数据(新增、修改) 
        /// <param name="_"></param> 
        /// <summary> 
        /// <returns></returns> 
        public Response SaveForm(dynamic _)
        {
            ReqFormEntity parameter = this.GetReqData<ReqFormEntity>();
            StuMailEntity entity = parameter.strEntity.ToObject<StuMailEntity>();
            entity.CreateTime = DateTime.Now;
            entity.CreateUserId = this.userInfo.userId;
            entity.CreateUserName = this.userInfo.realName;
            stuMailIBLL.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

    }
}