Files
Docker/CloudBuilder/CloudBuilder.Web.Entry/Controllers/Master/FamilyTreeController.auto.cs
T
2026-10-20 15:44:56 +08:00

556 lines
21 KiB
C#

using CloudBuilder.Core.DatabaseAccessor;
using CloudBuilder.Core.Policy;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Transactions;
using CloudBuilder.Core.Service;
using CloudBuilder.Master.Service;
using CloudBuilder.Core.DatabaseAccessor.Entity;
using Microsoft.AspNetCore.Http;
using CloudBuilder.Master.Entity;
using System;
using CloudBuilder.Master.Data;
using CloudBuilder.Master.SearchCriteria;
namespace CloudBuilder.Web.Entry.Controllers.Master
{
[Authorize(AuthorizePolicy.PERMISSION)]
[ApiController]
[Route("[controller]/[action]")]
public class FamilyTreeController : ControllerBase
{
private readonly IApplicationService service;
private readonly IFamilyTreeService familyTreeService;
public FamilyTreeController(IApplicationService service, IFamilyTreeService familyTreeService)
{
this.service = service;
this.familyTreeService= familyTreeService;
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic FindAllByTreeId(string treeId)
{
try
{
var result = familyTreeService.FindAllByTreeId(treeId);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic FindByKey(string key)
{
try
{
var result = familyTreeService.FindByKey(key);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class FindByCurrentPersonCompositionData
{
public string key { get; set; }
public string personId { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic FindByCurrentPerson(FindByCurrentPersonCompositionData compositionData)
{
try
{
var result = familyTreeService.FindByCurrentPerson(compositionData.key,compositionData.personId);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic FindBySearchCriteria(FamilyTreeSearchCriteria criteria)
{
try
{
var result = familyTreeService.FindBySearchCriteria(criteria);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Insert")]
[HttpPost]
[UnitOfWork]
public dynamic Insert(FamilyTreeData data)
{
try
{
var result = familyTreeService.Insert(data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class RequestFamilyTreePermissionCompositionData
{
public string treeId { get; set; }
public string currentPersonId { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
[UnitOfWork]
public dynamic RequestFamilyTreePermission(RequestFamilyTreePermissionCompositionData compositionData){
try
{
familyTreeService.RequestFamilyTreePermission(compositionData.treeId,compositionData.currentPersonId);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class ApproveFamilyTreePermissionCompositionData
{
public string treeId { get; set; }
public string currentPersonId { get; set; }
public string userName { get; set; }
public string managerIndc { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
[UnitOfWork]
public dynamic ApproveFamilyTreePermission(ApproveFamilyTreePermissionCompositionData compositionData){
try
{
familyTreeService.ApproveFamilyTreePermission(compositionData.treeId,compositionData.currentPersonId,compositionData.userName,compositionData.managerIndc);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class RejectFamilyTreePermissionCompositionData
{
public string treeId { get; set; }
public string currentPersonId { get; set; }
public string userName { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
[UnitOfWork]
public dynamic RejectFamilyTreePermission(RejectFamilyTreePermissionCompositionData compositionData){
try
{
familyTreeService.RejectFamilyTreePermission(compositionData.treeId,compositionData.currentPersonId,compositionData.userName);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class BindSelfPersonCompositionData
{
public string treeId { get; set; }
public string personId { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
[UnitOfWork]
public dynamic BindSelfPerson(BindSelfPersonCompositionData compositionData)
{
try
{
var result = familyTreeService.BindSelfPerson(compositionData.treeId,compositionData.personId);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
[UnitOfWork]
public dynamic UnbindSelfPerson(string treeId)
{
try
{
var result = familyTreeService.UnbindSelfPerson(treeId);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic Update(FamilyTreeData data)
{
try
{
var result = familyTreeService.Update(data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Delete")]
[HttpPost]
[UnitOfWork]
public dynamic Delete(string key){
try
{
familyTreeService.Delete(key);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Delete")]
[HttpPost]
[UnitOfWork]
public dynamic Deletes(string[] keys){
try
{
familyTreeService.Deletes(keys);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic GetExchangeFactor()
{
try
{
var result = familyTreeService.GetExchangeFactor();
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class ExportFamilyTreeCompositionData
{
public string treeId { get; set; }
public string scope { get; set; }
public string anchorPersonId { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic ExportFamilyTree(ExportFamilyTreeCompositionData compositionData)
{
try
{
var result = familyTreeService.ExportFamilyTree(compositionData.treeId,compositionData.scope,compositionData.anchorPersonId);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class SaveExchangeFileCompositionData
{
public string fileName { get; set; }
public string contentBase64 { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic SaveExchangeFile(SaveExchangeFileCompositionData compositionData)
{
try
{
var result = familyTreeService.SaveExchangeFile(compositionData.fileName,compositionData.contentBase64);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic ListExchangeFiles(string treeId)
{
try
{
var result = familyTreeService.ListExchangeFiles(treeId);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic ReadExchangeFile(string fileName)
{
try
{
var result = familyTreeService.ReadExchangeFile(fileName);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class ImportFamilyTreeCompositionData
{
public string targetTreeId { get; set; }
public FamilyTreeExchangeData data { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic ImportFamilyTree(ImportFamilyTreeCompositionData compositionData)
{
try
{
var result = familyTreeService.ImportFamilyTree(compositionData.targetTreeId,compositionData.data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class ImportSubTreeCompositionData
{
public string targetTreeId { get; set; }
public string anchorPersonId { get; set; }
public FamilyTreeExchangeData data { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic ImportSubTree(ImportSubTreeCompositionData compositionData)
{
try
{
var result = familyTreeService.ImportSubTree(compositionData.targetTreeId,compositionData.anchorPersonId,compositionData.data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "FamilyTree", operate: "Find")]
[HttpPost]
public dynamic ListBackups(string treeId)
{
try
{
var result = familyTreeService.ListBackups(treeId);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class RestoreBackupCompositionData
{
public string targetTreeId { get; set; }
public string backupFileName { get; set; }
}
[PermissionOperate(name: "FamilyTree", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic RestoreBackup(RestoreBackupCompositionData compositionData)
{
try
{
var result = familyTreeService.RestoreBackup(compositionData.targetTreeId,compositionData.backupFileName);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
}
}