public ActionResult <ICollection <TeamDTO> > GetAllTeams()
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                string name       = HttpContext.Request.Query["name"].ToString();
                var    orderParam = HttpContext.Request.Query["order"].ToString();
                Order  order      = Order.Ascending;
                if (!string.IsNullOrWhiteSpace(orderParam))
                {
                    order = (Order)Enum.Parse(typeof(Order), orderParam);
                }
                var filter = new TeamFilterDTO {
                    Name = name, Order = order
                };
                var teams = mapper.Map <TeamDTO[]>(teamBusinessLogic.GetAll(filter));
                return(Ok(teams));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }
        public void GetAllFilterByNameDescendingTest()
        {
            TeamFilterDTO filter = new TeamFilterDTO {
                Name = "Nacional", Order = Order.Descending
            };

            mockTeamRepo.Setup(r => r.Get(It.IsAny <Expression <Func <Team, bool> > >(), It.IsAny <Func <IQueryable <Team>, IOrderedQueryable <Team> > >(), "")).Returns(teamList);
            teamBL.GetAll(filter);
            mockTeamRepo.Verify(x => x.Get(It.IsAny <Expression <Func <Team, bool> > >(), It.IsAny <Func <IQueryable <Team>, IOrderedQueryable <Team> > >(), ""), Times.Once());
        }
        public IEnumerable <Team> GetAll(TeamFilterDTO filter = null)
        {
            if (filter == null)
            {
                return(repository.Get(null, null, ""));
            }

            if (string.IsNullOrEmpty(filter.Name))
            {
                return(filter.Order == Order.Descending ? repository.Get(null, (q => q.OrderByDescending(t => t.Name)), "") :
                       repository.Get(null, (q => q.OrderBy(t => t.Name)), ""));
            }
            else
            {
                return(repository.Get(t => t.Name == filter.Name, (q => q.OrderBy(t => t.Name)), ""));
            }
        }