using learun.iapplication;
using learun.util;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace EC.Web.Areas.LR_SystemModule.Controllers
{
	/// 
	/// 版 本 Learun-ADMS V7.0.3 EC管理后台
	/// 描 述:数据库创建常用字段
	/// 
	[Area("LR_SystemModule")]
	public class DbFieldController : MvcControllerBase
	{
		private readonly DbFieldIBLL _dbFieldIBLL;
		public DbFieldController(DbFieldIBLL dbFieldIBLL)
		{
			_dbFieldIBLL = dbFieldIBLL;
		}
		#region 视图功能
		/// 
		/// 列表页面
		/// 
		/// 
		public IActionResult Index()
		{
			return View();
		}
		/// 
		/// 表单页面
		/// 
		/// 
		[HttpGet]
		public IActionResult Form()
		{
			return View();
		}
		/// 
		/// 字段选择页面
		/// 
		/// 
		[HttpGet]
		public IActionResult SelectForm()
		{
			return View();
		}
		#endregion 视图功能
		#region 获取数据
		/// 
		/// 获取列表数据
		/// 
		/// 
		[HttpGet]
		[AjaxOnly]
		public async Task GetList(string queryJson)
		{
			var data = await _dbFieldIBLL.GetList(queryJson);
			return this.Success(data);
		}
		/// 
		/// 获取分页数据
		/// 
		/// 分页参数
		/// 查询参数
		/// 
		[HttpGet]
		[AjaxOnly]
		public async Task GetPageList(string pagination, string queryJson)
		{
			Pagination paginationobj = pagination.ToObject();
			var data = await _dbFieldIBLL.GetPageList(paginationobj, queryJson);
			var jsonData = new
			{
				rows = data,
				paginationobj.total,
				paginationobj.page,
				paginationobj.records,
			};
			return Success(jsonData);
		}
		/// 
		/// 获取实体数据
		/// 
		/// 主键
		/// 
		[HttpGet]
		[AjaxOnly]
		public async Task GetEntity(string keyValue)
		{
			var data = await _dbFieldIBLL.GetEntity(keyValue);
			return Success(data);
		}
		#endregion 获取数据
		#region 提交数据
		/// 
		/// 保存表单数据
		/// 
		/// 主键
		/// 实体
		/// 
		[HttpPost]
		[AjaxOnly]
		public async Task SaveForm(string keyValue, DbFieldEntity entity)
		{
			await _dbFieldIBLL.SaveEntity(keyValue, entity);
			return SuccessInfo("保存成功!");
		}
		/// 
		/// 删除表单数据
		/// 
		/// 主键
		/// 
		[HttpPost]
		[AjaxOnly]
		public async Task DeleteForm(string keyValue)
		{
			await _dbFieldIBLL.DeleteEntity(keyValue);
			return SuccessInfo("删除成功!");
		}
		#endregion 提交数据
	}
}