Exemple #1
0
        public DataPack <NoticeDto> FindNoticeList(EnumNoticeType?noticeType, string title, DateTime?startTime, DateTime?endTime, int currentPageIndex, int pageSize)
        {
            var user = AuthManager.GetCurrentUser();

            if (user == null)
            {
                //throw  new CustomException(10001,"获取当前用户出错");
                Logger.WriteLog(LogType.ERROR, "获取当前用户出错");
            }
            var code = user == null ? "" : user.CarrierCode;//运营Code

            //if (AuthManager.GetCurrentUser() == null && token != null)
            //{
            //    var auth = ObjectFactory.GetInstance<AuthService>();
            //    var user = auth.GetCurrentUserByToken(token);
            //    code = user.CarrierCode;
            //}
            //else
            //{
            //    code = AuthManager.GetCurrentUser() != null ? AuthManager.GetCurrentUser().CarrierCode : code;//运营Code
            //}
            var query = noticeRepository.FindAll(p => p.State == true && (p.Code == code || (p.Code == "" && p.NoticeShowType.Contains("0"))));

            if (!string.IsNullOrEmpty(title))
            {
                query = query.Where(p => p.Title.Contains(title));
            }
            if (startTime.HasValue)
            {
                query = query.Where(p => p.CreateTime > startTime);
            }
            if (endTime.HasValue)
            {
                query = query.Where(p => p.CreateTime < endTime);
            }
            if (noticeType.HasValue)
            {
                var type = ((int)noticeType).ToString();
                query = query.Where(p => p.NoticeType.Contains(type));
            }

            var list     = query.OrderByDescending(o => o.CreateTime).Skip((currentPageIndex - 1) * pageSize).Take(pageSize).ToList();
            var datapack = new DataPack <NoticeDto>();

            datapack.TotalCount = query.Count();
            datapack.List       = AutoMapper.Mapper.Map <List <Notice>, List <NoticeDto> >(list);
            return(datapack);
        }