using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Linq;
namespace APT.SK.WebApi.Controllers.Api
{
///
/// 辨识区域
///
[Route("api/SK/SKRiskArea")]
public partial class RiskAreaController : AuthorizeTreeApiController
{
///
/// 更新或新增数据
///
/// 对象实体
///
[HttpPost, Route("FullUpdate")]
public JsonActionResult FullUpdate([FromBody] T_SK_RISK_AREA entity)
{
//return WitUpdate(entity);
return SafeExecute(() =>
{
var videos = entity.Nav_Videos;
entity.Nav_Videos = null;
if (videos.Count > 0)
{
foreach (var item in videos)
{
item.Nav_Viedo = null;
item.Nav_Area = null;
}
}
this.UnifiedCommit(() =>
{
if (videos != null && videos.Count > 0)
{
BantchSaveEntityNoCommit(videos);
}
TreeUpdateEntity(entity);
});
return true;
});
}
///
/// 区域最小单元
///
///
///
[HttpPost, Route("GetAreaList")]
public PagedActionResult GetAreaList([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData((result) =>
{
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.ToString();
List ids = new List();
Expression> expression = e => !e.IS_DELETED;
var areas = this.GetEntities(expression, new BaseFilter(pageFilter.OrgId)).ToList();
if (areas != null & areas.Any())
{
var parentIds = areas.Where(m => m.PARENT_ID != null).Select(t => t.PARENT_ID).ToList();
foreach (var item in areas)
{
if (!parentIds.Contains(item.ID))
{
ids.Add(item.ID);
}
}
}
Expression> expressionArea = e => !e.IS_DELETED;
if (ids != null && ids.Any())
{
expressionArea = expressionArea.And(t => ids.Contains(t.ID));
}
var info = this.GetOrderPageEntities(expressionArea, pageFilter, null);
result.TotalCount = info.TotalCount;
result.Data = info.Data;
result.IsSuccessful = info.IsSuccessful;
});
}
}
}