using Learun.Application.Form;
using Nancy;
using System.Collections.Generic;
namespace Learun.Application.WebApi.Modules
{
///
/// 版 本 Learun-ADMS V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创建人:数字化智慧校园-框架开发组
/// 日 期:2018.01.03
/// 描 述:自定义表单处理接口
///
public class FormApi: BaseApi
{
///
/// 注册接口
///
public FormApi()
: base("/learun/adms/form")
{
Get["/scheme"] = GetScheme;
Get["/data"] = GetData;
Get["/folderkey"] = GetFolderkey;
Post["/save"] = Save;
Post["/delete"] = DeleteForm;
}
private FormSchemeIBLL formSchemeIBLL = new FormSchemeBLL();
private Response GetFolderkey(dynamic _)
{
List req = this.GetReqData>();// 获取模板请求数据
Dictionary dic = new Dictionary();
foreach (var item in req)
{
if (!string.IsNullOrEmpty(item.processIdName))
{
var data = formSchemeIBLL.GetFolderKey(item.schemeInfoId, item.processIdName, item.keyValue);//
dic = data;
}
}
return Success(dic);
}
///
/// 获取表单模板数据
///
///
///
private Response GetScheme(dynamic _)
{
List req = this.GetReqData>();// 获取模板请求数据
Dictionary schemeList = new Dictionary();
foreach (var item in req) {
FormSchemeInfoEntity schemeInfoEntity = formSchemeIBLL.GetSchemeInfoEntity(item.id);
if (schemeInfoEntity != null) {
FormSchemeEntity schemeEntity = formSchemeIBLL.GetSchemeEntity(schemeInfoEntity.F_SchemeId);
if (schemeEntity != null) {
if (schemeInfoEntity.F_SchemeId != item.ver)
{
schemeList.Add(item.id, schemeEntity);
}
}
}
}
return Success(schemeList);
}
///
/// 获取自定义表单数据
///
///
///
public Response GetData(dynamic _)
{
List req = this.GetReqData>();// 获取模板请求数据
Dictionary dic = new Dictionary();
foreach (var item in req)
{
if (string.IsNullOrEmpty(item.processIdName))
{
var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.keyValue);
dic.Add(item.schemeInfoId, data);
}
else
{
var data = formSchemeIBLL.GetInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue);//
dic.Add(item.schemeInfoId, data);
}
}
return Success(dic);
}
///
/// 保存表单数据
///
///
///
private Response Save(dynamic _)
{
List req = this.GetReqData>();// 获取模板请求数据
foreach (var item in req)
{
formSchemeIBLL.SaveInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue, item.formData);
}
return Success("保存成功");
}
///
/// 删除表单数据
///
///
///
private Response DeleteForm(dynamic _)
{
FormParam req = this.GetReqData();// 获取模板请求数据
formSchemeIBLL.DeleteInstanceForm(req.schemeInfoId, req.keyValue);
return Success("删除成功");
}
#region 请求参数
private class FolderKeyReq
{
///
/// 表单请求Id
///
public string id { get; set; }
///
/// 当前自定义表单版本号
///
public string ver { get; set; }
///
/// 流程模板id
///
public string schemeInfoId { get; set; }
///
/// 关联字段名称
///
public string processIdName { get; set; }
///
/// 数据主键值
///
public string keyValue { get; set; }
///
/// 表单数据
///
public string formData { get; set; }
}
private class SchemeReq {
///
/// 表单请求Id
///
public string id { get; set; }
///
/// 当前自定义表单版本号
///
public string ver { get; set; }
}
///
/// 自定义表单提交参数
///
private class FormParam
{
///
/// 流程模板id
///
public string schemeInfoId { get; set; }
///
/// 关联字段名称
///
public string processIdName { get; set; }
///
/// 数据主键值
///
public string keyValue { get; set; }
///
/// 表单数据
///
public string formData { get; set; }
}
#endregion
}
}