123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using CZFW.Core;
- using CZFW.Framework;
- using CZFW.Framework.Model.ViewModel;
- using CZFW.Framework.Tools;
- using CZFW.MDB;
- using CZFW.MDB.Util;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.Filters;
- using Newtonsoft.Json.Linq;
- namespace CZFW.CMS.Builder.Controllers
- {
- public class SchemaController : Framework.ControllerBase
- {
- string TplName;
- public override void OnActionExecuting(ActionExecutingContext context)
- {
- // GetSession<string>(CMSBuilderConstant.TPLNAME_SESSION_NAME);
- if (string.IsNullOrWhiteSpace(TplName))
- {
- context.Result = Json(Result(false, "没有指定当前要编辑的模板名称"));
- }
- base.OnActionExecuting(context);
- }
- ISchemaRepository _logic;
- IMongoRepository _repository;
- public SchemaController(ISchemaRepository logic, IMongoRepository repo)
- {
- _logic = logic;
- _repository = repo;
- TplName = ConfigHelper.GetValue("SysConfig:TplName");
- }
- public ResultModel Create([FromBody]string schema)
- {
- return _logic.Create(TplName, schema);
- }
- public IActionResult Index(int pageIndex = 1, int pageSize = 100, string sort = "{}")
- {
- var res = _logic.GetSchemaList(tplId: TplName);
- var json = res.CZToJson();
- return Content(json, "application/json");
- }
- public IActionResult GetOne(string query = "{}", string proj = "{}", string sort = "{}")
- {
- var res = _logic.GetOne(tplId: TplName, query: query, proj: proj, sort: sort);
- var json = res.CZToJson();
- return Content(json, "application/json");
- }
- public ResultModel Remove(string id)
- {
- return _logic.Remove(id);
- }
- public ResultModel Replace(string id, [FromBody]string objJson)
- {
- JObject jobj = JObject.Parse(objJson);
- if (!jobj.ContainsKey(Constants.TPL_NAME_FIELD))
- {
- jobj[Constants.TPL_NAME_FIELD] = TplName;
- objJson = jobj.ToString();
- }
- return _logic.Replace(id, objJson);
- }
- public IActionResult Detail(string id)
- {
- var data = _logic.GetSchema(id);
- var jobj = data.CZToJson();
- return Content(jobj, "application/json");
- }
- public ResultModel UpdateCategory(string pageName, string query, string cateObjJson)
- {
- _repository.SetCurrentTable(pageName);
- var res = _repository.UpdateMany(query, cateObjJson);
- return res;
- }
- public ResultModel UpdateArrayField(string pageName, string query, string deleteQuery, string insertObjJson)
- {
- _repository.SetCurrentTable(pageName);
- var res = _repository.UpdateMany(query, deleteQuery);
- if (res.Success)
- res = _repository.UpdateMany(query, insertObjJson);
- return res;
- }
- public ResultModel GetCurrentTpl()
- {
- var res = SiteHelper.GetSiteModelByDomain();
- return new ResultModel(data: res.TplName);
- }
- }
- }
|