using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.MS.Domain.Enums.SK;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
namespace APT.SK.WebApi.Controllers.Api
{
    /// 
    ///  触发时间配置表
    /// 
    [Route("api/SK/SKTimeSet")]
    public partial class TimeSetController : AuthorizeApiController
    {
        /// 
        /// 保存
        /// 
        /// 
        /// 
        [HttpPost, Route("FullUpdate")]
        public JsonActionResult FullUpdate([FromBody] T_SK_TIME_SET entity)
        {
            return SafeExecute(() =>
            {
                switch (entity.PLANCHECKFREQUENCY)
                {
                    case SKPLANCHECKFREQUENCYEnum.Date:
                        entity.MONTH = null;
                        entity.DATA = null;
                        entity.WEEKDATA = null;
                        break;
                    case SKPLANCHECKFREQUENCYEnum.Week:
                        entity.MONTH = null;
                        entity.DATA = null;
                        break;
                    case SKPLANCHECKFREQUENCYEnum.Month:
                        entity.MONTH = null;
                        entity.WEEKDATA = null;
                        break;
                    case SKPLANCHECKFREQUENCYEnum.Quarter:
                        entity.WEEKDATA = null;
                        break;
                    case SKPLANCHECKFREQUENCYEnum.HalfYear:
                        entity.WEEKDATA = null;
                        break;
                    case SKPLANCHECKFREQUENCYEnum.Year:
                        entity.WEEKDATA = null;
                        break;
                    default:
                        entity.MONTH = null;
                        entity.DATA = null;
                        entity.WEEKDATA = null;
                        entity.RUNSETTIME = null;
                        break;
                }
                this.UnifiedCommit(() =>
                {
                    if (entity != null)
                        UpdateEntityNoCommit(entity);
                });
                return true;
            });
        }
        /// 
        /// 排序分页查询数据
        /// 
        /// 分页过滤实体
        /// 
        [HttpPost, Route("SKOrderPaged")]
        public PagedActionResult SKOrderPaged([FromBody] KeywordPageFilter pageFilter)
        {
            var result = this.GetOrderPageEntities(null, pageFilter);
            if (result != null && result.Data != null && result.Data.Any())
            {
                result.Data.ForEach(t =>
                {
                    if (t.MONTH == null || t.MONTH == 0)
                    {
                        t.MONTHStr = "--";
                    }
                    if (t.DATA == null || t.DATA == 0)
                    {
                        t.DATAStr = "--";
                    }
                });
            }
            return result;
        }
    }
}