using APT.BaseData.Domain.Entities.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.SC.PT;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Linq.Expressions;
namespace APT.SC.WebApi.Controllers.Api.PTController
{
    /// 
    ///  触发时间配置表
    /// 
    [Route("api/PT/PTTimeSet")]
    public partial class TimeSetController : AuthorizeApiController
    {
        /// 
        /// 更新或新增数据
        /// 
        /// 对象实体
        /// 
        [HttpPost, Route("FullUpdate")]
        public JsonActionResult FullUpdate([FromBody] T_PT_TIME_SET entity)
        {
            switch (entity.PLANCHECKFREQUENCY)
            {
                case MS.Domain.Enums.BSPLANCHECKFREQUENCYEnum.Month:
                    entity.RUNSETTIME = DateTime.Parse(DateTime.Now.Year +"-" + DateTime.Now.Month+"-" + entity.DATA+" " + entity.RUNSETTIME.Value.TimeOfDay);
                    break;
                case MS.Domain.Enums.BSPLANCHECKFREQUENCYEnum.Quarter:
                    break;
                case MS.Domain.Enums.BSPLANCHECKFREQUENCYEnum.Year:
                    break;
                default:
                    break;
            }
            return WitUpdate(entity);
        }
        /// 
        /// 查询
        /// 
        /// 
        /// 
        [HttpPost, Route("OrderPagedNew")]
        public PagedActionResult OrderPagedNew([FromBody] KeywordPageFilter pageFilter)
        {
            Expression> express = t => !t.IS_DELETED;
            express = express.And(t => t.SET_TYPE == PTSetTypeEnum.CorrectivePreventive || t.SET_TYPE == PTSetTypeEnum.SafetyMonitorPlan || t.SET_TYPE == PTSetTypeEnum.SafetyMonitorRecord || t.SET_TYPE == PTSetTypeEnum.SafetyEvaluationPlan);
            var result = this.WitOrderPaged(express, pageFilter);
            return result;
        }
    }
}