TTaskAssignApp.cs 5.34 KB
using Infrastructure;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using WebRepository;

namespace WebApp
{
    /// <summary>
    /// 
    /// </summary>

    public partial class TTaskAssignApp
    {
        private IUnitWork _unitWork;
        private IUnitWorkAcs _unitWorkAcs;
        public IRepository<TTaskAssign> _app;

        public TTaskAssignApp(IUnitWork unitWork, IUnitWorkAcs unitWorkAcs, IRepository<TTaskAssign> repository)
        {
            _unitWork = unitWork;
            _unitWorkAcs = unitWorkAcs;
            _app = repository;
        }

        public TTaskAssignApp SetLoginInfo(LoginInfo loginInfo)
        {
            _app._loginInfo = loginInfo;
            return this;
        }

        public TableData Load(PageReq pageRequest, TTaskAssign entity)
        {
            var result = new TableData();
            IQueryable<TTaskAssign> data;
            if (entity.Status != null)
            {
                data = Find(EntityToExpression<TTaskAssign>.GetExpressions(entity)).Where(u => u.CreateBy.Equals(_app._loginInfo.Account));
            }
            else
            {
                data = Find(EntityToExpression<TTaskAssign>.GetExpressions(entity)).Where(u => u.Status != 99 && u.CreateBy.Equals(_app._loginInfo.Account));
            }

            GetData(data, result, pageRequest);
            result.count = data.Count();

            return result;
        }

        public TableData LoadAssign(PageReq pageRequest, TTaskAssign entity)
        {
            var result = new TableData();
            var data = Find(EntityToExpression<TTaskAssign>.GetExpressions(entity)).Where(u => new List<int> { 0, 1 }.Contains(u.Status.Value) && u.CreateBy.Equals(_app._loginInfo.Account));

            GetData(data, result, pageRequest);
            result.count = data.Count();

            return result;
        }

        public TableData LoadCancel(PageReq pageRequest, TTaskAssign entity)
        {
            var result = new TableData();
            var data = Find(EntityToExpression<TTaskAssign>.GetExpressions(entity)).Where(u => u.Status == 0 && u.CreateBy.Equals(_app._loginInfo.Account));

            GetData(data, result, pageRequest);
            result.count = data.Count();

            return result;
        }

        public TableData LoadClose(PageReq pageRequest, TTaskAssign entity)
        {
            var result = new TableData();

            var data = Find(EntityToExpression<TTaskAssign>.GetExpressions(entity)).Where(u => new List<int> { 0, 1 }.Contains(u.Status.Value));
            var data1 = data.ToList<TTaskAssign>();
            var data2 = _unitWorkAcs.Find<TTask>(null).Select(u => new { u.StrTaskNo, u.StrTaskAgv, u.StrTaskState, u.TaskErrMsg }).ToList();

            var closeData = from closedata in data1
                            join taskData in data2
                            on closedata.Taskno equals taskData.StrTaskNo into temp1
                            from t1 in temp1.DefaultIfEmpty()
                            select new
                            {
                                closedata.Id,
                                closedata.Taskno,
                                closedata.Taskid,
                                closedata.Typename,
                                closedata.Groupname,
                                closedata.TaskLevel,
                                closedata.Status,
                                closedata.Taskinfo,
                                CreateTime = closedata.CreateTime == null ? "" : closedata.CreateTime.Value.ToString("yyyy/MM/dd HH:mm:ss"),
                                closedata.CreateBy,
                                UpdateTime = closedata.UpdateTime == null ? "" : closedata.UpdateTime.Value.ToString("yyyy/MM/dd HH:mm:ss"),
                                closedata.UpdateBy,
                                StrTaskAgv = t1 == null ? "" : t1.StrTaskAgv,
                                StrTaskState = t1 == null ? "" : t1.StrTaskState,
                                TaskErrMsg = t1 == null ? "" : t1.TaskErrMsg,
                            };

            result.data = closeData;
            result.count = data.Count();
            return result;
        }

        public void Ins(TTaskAssign entity)
        {
            _app.Add(entity);
        }

        public void Upd(TTaskAssign entity)
        {
            _app.Update(entity);
        }

        public void DelByIds(int[] ids)
        {
            _app.Delete(u => ids.Contains(u.Id.Value));
        }

        public TTaskAssign FindSingle(Expression<Func<TTaskAssign, bool>> exp)
        {
            return _app.FindSingle(exp);
        }

        public IQueryable<TTaskAssign> Find(Expression<Func<TTaskAssign, bool>> exp)
        {
            return _app.Find(exp);
        }

        public TableData Query(TTaskAssign entity)
        {
            var result = new TableData();
            var data = _app.Find(EntityToExpression<TTaskAssign>.GetExpressions(entity));

            GetData(data, result);
            result.count = data.Count();

            return result;
        }

        public void GetData(IQueryable<TTaskAssign> data, TableData result, PageReq pageRequest = null)
        {
            _app.GetData(data, result, pageRequest);
        }
    }
}