59 lines
2.2 KiB
C#
59 lines
2.2 KiB
C#
using APT.BaseData.Domain.Entities.OP;
|
|
using APT.Infrastructure.Core;
|
|
using APT.Migrations;
|
|
using APT.Utility;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace APT.OP.WebApi.Controllers.Api
|
|
{
|
|
[Route("api/OP/TenantDomain")]
|
|
public class TenantDomain : AuthorizeApiController<T_OP_TENANT>
|
|
{
|
|
/// <summary>
|
|
/// 更新
|
|
/// </summary>
|
|
/// <param name="entity"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("FullUpdate")]
|
|
public JsonActionResult<bool> FullUpdate([FromBody] T_OP_TENANT entity)
|
|
{
|
|
return SafeExecute<bool>(() =>
|
|
{
|
|
var orgFilter = new BaseFilter();
|
|
orgFilter.IgnoreOrgRule = true;
|
|
T_FM_ORGANIZATION tenantOrg = new T_FM_ORGANIZATION();
|
|
var targetDB = this.GetEntities<T_OP_TENANT_DB_CONN>(x => x.ID == entity.DB_CONN_ID, orgFilter).FirstOrDefault();
|
|
if (targetDB != null && !string.IsNullOrEmpty(targetDB.DB_CONN))
|
|
{
|
|
var Conn = targetDB.DB_CONN;
|
|
using (var context = new MigrationContext(Conn))
|
|
{
|
|
tenantOrg = context.GetEntities<T_FM_ORGANIZATION>(x => x.ID == entity.ID, null).FirstOrDefault();
|
|
tenantOrg.ENABLE_STATUS = entity.ENABLE_STATUS;
|
|
context.UpdateEntity(tenantOrg);
|
|
context.SaveChanges();
|
|
}
|
|
}
|
|
var org = this.GetEntities<T_FM_ORGANIZATION>(x => x.ID == entity.ID, orgFilter).FirstOrDefault();
|
|
org.ENABLE_STATUS = entity.ENABLE_STATUS;
|
|
var domains = entity.Nav_Domains;
|
|
entity.Nav_Domains = null;
|
|
this.UnifiedCommit(() =>
|
|
{
|
|
this.UpdateEntityNoCommit(entity);
|
|
this.UpdateEntityNoCommit(org);
|
|
if (domains != null && domains.Any())
|
|
this.BantchSaveEntityNoCommit(domains);
|
|
});
|
|
|
|
return true;
|
|
});
|
|
}
|
|
}
|
|
}
|