Ejemplo n.º 1
0
        /// <summary>
        /// 根据条件查询计划,返回查询的实体列表
        /// </summary>
        /// <param name="SearchCondition">计划查询类对象</param>
        /// <returns></returns>
        public async Task <PlanInfoDtoPages> GetEntitiesAsync(PlanInfoSearch SearchCondition)
        {
            PlanInfoDtoPages        SearchResult = new PlanInfoDtoPages();
            IQueryable <PlanEntity> Items        = _GhDbContext.dsPlans.AsNoTracking() as IQueryable <PlanEntity>;

            if (SearchCondition != null)
            {
                if (!string.IsNullOrWhiteSpace(SearchCondition.CreateUserId))
                {
                    Items = Items.Where(e => e.CreateUserId.Equals(SearchCondition.CreateUserId, StringComparison.Ordinal));
                }
                if (!string.IsNullOrWhiteSpace(SearchCondition.UnitName))
                {
                    Items = Items.Where(e => e.UnitName.Equals(SearchCondition.UnitName, StringComparison.Ordinal));
                }
                if (!string.IsNullOrWhiteSpace(SearchCondition.ResponsiblePerson))
                {
                    Items = Items.Where(e => e.ResponsiblePerson.Equals(SearchCondition.ResponsiblePerson, StringComparison.Ordinal));
                }
                if (!string.IsNullOrWhiteSpace(SearchCondition.CurrectState))
                {
                    Items = Items.Where(e => SearchCondition.CurrectState.Contains(e.CurrectState, StringComparison.Ordinal));
                }
                if (!string.IsNullOrWhiteSpace(SearchCondition.Helpers))
                {
                    Items = Items.Where(e => e.Helpers.Contains(SearchCondition.Helpers, StringComparison.Ordinal));
                }
                if (!string.IsNullOrWhiteSpace(SearchCondition.KeysInMultiple))
                {
                    Items = Items.Where(e => e.Caption.Contains(SearchCondition.KeysInMultiple, StringComparison.Ordinal) || e.Content.Contains(SearchCondition.KeysInMultiple, StringComparison.Ordinal));
                }

                SearchResult.SearchCondition.RecordCount = await Items.CountAsync().ConfigureAwait(false);

                //分页查询

                List <PlanEntity> RecordEntities = await Items.OrderByDescending(x => x.UpDateTime).Skip((SearchCondition.PageIndex - 1) * SearchCondition.PageSize).Take(SearchCondition.PageSize).ToListAsync().ConfigureAwait(false);


                if (!string.IsNullOrWhiteSpace(SearchCondition.LongPlan))
                {
                    switch (SearchCondition.LongPlan)
                    {
                    case "no":
                        RecordEntities = RecordEntities.Where(e => (e.EndDate - e.BeginDate).Days < 90).ToList();
                        //Items = Items.Where(e => (e.EndDate - e.BeginDate).Days < 90);
                        break;

                    case "yes":
                        RecordEntities = RecordEntities.Where(e => (e.EndDate - e.BeginDate).Days >= 90).ToList();
                        //Items = Items.Where(e => (e.EndDate - e.BeginDate).Days >= 90);
                        break;

                    default:
                        break;
                    }
                }
                SearchResult.RecordList = _Mapper.Map <List <PlanInfoDto> >(RecordEntities);
            }
            return(SearchResult);
        }
Ejemplo n.º 2
0
 public async Task <ActionResult <PlanInfoDtoPages> > GetAsync([FromQuery] PlanInfoSearch mSearchPlan)
 {
     return(await _PlanRepository.GetEntitiesAsync(mSearchPlan).ConfigureAwait(false));
 }