CloudBuilder/CloudBuilder.Web.Entry/Controllers/Security/SecurityLockController.auto.cs
owenchen 2e990e687f ow
2026-05-28 15:05:46 +08:00

253 lines
9.2 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.Security.Service;
using CloudBuilder.Core.DatabaseAccessor.Entity;
using Microsoft.AspNetCore.Http;
using CloudBuilder.Core.Policy;
using CloudBuilder.Core.DependencyInjection.Request;
using CloudBuilder.Security.Data;
using CloudBuilder.Core.Authorization;
using CloudBuilder.Security.Entity;
using CloudBuilder.Security.SearchCriteria;
using CloudBuilder.Security;
using System;
namespace CloudBuilder.Web.Entry.Controllers.Security
{
[Authorize(AuthorizePolicy.PERMISSION)]
[ApiController]
[Route("[controller]/[action]")]
public class SecurityLockController : ControllerBase
{
private readonly IApplicationService service;
private readonly ISecurityLockService securityLockService;
public SecurityLockController(IApplicationService service, ISecurityLockService securityLockService)
{
this.service = service;
this.securityLockService= securityLockService;
}
[PermissionOperate(name: "SecurityLock", operate: "Find")]
[HttpPost]
public dynamic FindByKey(SecurityLockEntityKey key)
{
try
{
var result = securityLockService.FindByKey(key);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityLock", operate: "Insert")]
[HttpPost]
[UnitOfWork]
public dynamic Insert(SecurityLockEntity data)
{
try
{
var result = securityLockService.Insert(data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityLock", operate: "Update")]
[HttpPost]
[UnitOfWork]
public dynamic Update(SecurityLockEntity data)
{
try
{
var result = securityLockService.Update(data);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
[PermissionOperate(name: "SecurityLock", operate: "Delete")]
[HttpPost]
public dynamic Delete(SecurityLockEntityKey key){
try
{
securityLockService.Delete(key);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class IsLockedCompositionData
{
public string entityName { get; set; }
public string key { get; set; }
}
[AllowAnonymous]
[HttpPost]
public dynamic IsLocked(IsLockedCompositionData compositionData)
{
try
{
var result = securityLockService.IsLocked(compositionData.entityName,compositionData.key);
return result;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class LockCompositionData
{
public string entityName { get; set; }
public string key { get; set; }
public string username { get; set; }
}
[AllowAnonymous]
[HttpPost]
public dynamic Lock(LockCompositionData compositionData){
try
{
securityLockService.Lock(compositionData.entityName,compositionData.key,compositionData.username);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class ForceLockCompositionData
{
public string entityName { get; set; }
public string key { get; set; }
public string username { get; set; }
}
[AllowAnonymous]
[HttpPost]
public dynamic ForceLock(ForceLockCompositionData compositionData){
try
{
securityLockService.ForceLock(compositionData.entityName,compositionData.key,compositionData.username);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class ConsumeLockCompositionData
{
public string entityName { get; set; }
public string key { get; set; }
public string username { get; set; }
}
[AllowAnonymous]
[HttpPost]
public dynamic ConsumeLock(ConsumeLockCompositionData compositionData){
try
{
securityLockService.ConsumeLock(compositionData.entityName,compositionData.key,compositionData.username);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
public class ClearLockCompositionData
{
public string entityName { get; set; }
public string key { get; set; }
}
[AllowAnonymous]
[HttpPost]
public dynamic ClearLock(ClearLockCompositionData compositionData){
try
{
securityLockService.ClearLock(compositionData.entityName,compositionData.key);
return string.Empty;
}
catch (ValidatedException vex)
{
return vex;
}
catch (Exception ex)
{
return new ServiceErrorException(ex);
}
}
}
}