コード例 #1
0
ファイル: AdvertRepository.cs プロジェクト: lulzzz/GoFish
        internal IEnumerable <Advert> Search(int userId, AdvertSearchOptions options)
        {
            if (options.Status?.ToLower() != "active" && options.Status?.ToLower() != "inactive")
            {
                throw new ArgumentOutOfRangeException("Status");
            }

            Func <Advert, bool> filter;

            if (options.Status == "Active")
            {
                filter = a => a.Status == AdvertStatus.Created ||
                         a.Status == AdvertStatus.Posted ||
                         a.Status == AdvertStatus.Published;
            }
            else
            {
                filter = a => a.Status == AdvertStatus.Withdrawn ||
                         a.Status == AdvertStatus.Unknown;
            }

            return(_readModel.Adverts
                   .Include(a => a.Advertiser)
                   .Include(ct => ct.CatchType)
                   .Where(u => u.Advertiser.Id == userId)
                   .Where(filter));
        }
コード例 #2
0
        public IActionResult Get([FromQuery] AdvertSearchOptions options)
        {
            if (!Request.QueryString.HasValue)
            {
                return(Ok(_queryMediator.GetDraftAdverts(GetUserId())));
            }

            try
            {
                return(Ok(_queryMediator.Search(GetUserId(), options)));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }