using System;
using System.Threading.Tasks;
using Infrastructure;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.Repository.Domain;
namespace OpenAuth.WebApi.Controllers
{
///
/// 代码生成器相关操作
///
[Route("api/[controller]/[action]")]
[ApiController]
[ApiExplorerSettings(GroupName = "代码生成器_表_BuilderTables")]
public class BuilderTablesController : ControllerBase
{
private readonly BuilderTableApp _app;
///
/// 创建一个代码生成的模版
/// 会自动创建字段明细信息,添加成功后使用BuilderTableColumnsController.Load加载字段明细
/// 返回添加的模版ID
///
[HttpPost]
public Response Add(AddOrUpdateBuilderTableReq obj)
{
var result = new Response();
try
{
result.Result = _app.Add(obj);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
///
/// 只修改表信息,不会更新明细
///
///
///
[HttpPost]
public Response Update(AddOrUpdateBuilderTableReq obj)
{
var result = new Response();
try
{
_app.Update(obj);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
///
/// 加载列表
///
[HttpGet]
public async Task> Load([FromQuery]QueryBuilderTableListReq request)
{
return await _app.Load(request);
}
///
/// 加载所有的主表(parentId为空的)
///
[HttpGet]
public async Task AllMain()
{
return await _app.AllMain();
}
///
/// 批量删除代码生成模版和对应的字段信息
///
[HttpPost]
public Response Delete([FromBody]string[] ids)
{
var result = new Response();
try
{
_app.DelTableAndcolumns(ids);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
///
/// 创建实体
///
///
///
[HttpPost]
public Response CreateEntity(CreateEntityReq obj)
{
var result = new Response();
try
{
_app.CreateEntity(obj);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
///
/// 创建业务逻辑层
///
///
///
[HttpPost]
public Response CreateBusiness(CreateBusiReq obj)
{
var result = new Response();
try
{
_app.CreateBusiness(obj);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
///
/// 创建vue界面
///
///
///
[HttpPost]
public Response CreateVue(CreateVueReq obj)
{
var result = new Response();
try
{
_app.CreateVue(obj);
_app.CreateVueApi(obj);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
public BuilderTablesController(BuilderTableApp app)
{
_app = app;
}
}
}