using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.IServices;
using APT.Infrastructure.Core;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using APT.Utility;
using APT.Infrastructure.Api;
using APT.Migrations;
using APT.BaseData.Domain.Entities.OP;
using APT.BaseData.Domain.Enums.OP;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices.OP;
using Microsoft.Data.SqlClient;
namespace APT.PF.WebApiControllers.Api.PF
{
///
///
///
[Route("api/PF/PFBivideoimg")]
public class PFBivideoimgController : AuthorizeApiController
{
IOPTenantDBConnService OPTenantDBConnService { get; set; }
///
///
///
///
public PFBivideoimgController(IOPTenantDBConnService opTenantDBConnService)
{
OPTenantDBConnService = opTenantDBConnService;
}
///
/// 更新或新增数据
///
/// 对象实体
///
[HttpPost, Route("FullUpdate")]
public JsonActionResult FullUpdate([FromBody] T_PF_BIVIDEOIMG entity)
{
return SafeExecute(() =>
{
T_PF_BIVIDEOIMG check = null;
var Nav_Files = entity.Nav_Files;
entity.Nav_Files = null;
if (string.IsNullOrEmpty(entity.TITLE))
{
throw new Exception("请输入标题后再操作!");
}
if (Nav_Files == null || Nav_Files.Count() < 1)
{
throw new Exception("请上传图片或附件再操作!");
}
if (entity.TYPE == FILETYPEEnum.VIDEO && Nav_Files.Where(e => !e.IS_DELETED).Count() > 1)
{
throw new Exception("只能上传一个视频!");
}
if (entity.STATUS == STATEEnum.release)
{
check = GetEntity(e => e.STATUS == STATEEnum.release);
if (check != null)
{
if (check.ID == entity.ID)
{
}
else
{
throw new Exception("只能有一条已发布的标语!如需发布本本条,请撤回已发布的标语!");
}
}
}
else if (entity.STATUS == STATEEnum.Delete)
{
entity.IS_DELETED = true;
}
else if (entity.STATUS == STATEEnum.Draft)
{
check = GetEntity(entity.ID);
if (check != null && (check.STATUS == STATEEnum.release))
{
throw new Exception("请先撤回后再修改!");
}
}
if (entity.USER_ID_CREATER == Guid.Empty)
{
entity.USER_ID_CREATER = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
}
entity.MODIFY_TIME = DateTime.Now;
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);
if (Nav_Files != null && Nav_Files.Count() > 0)
BantchSaveEntityNoCommit(Nav_Files);
});
return true;
});
}
}
}