Beispiel #1
0
        public async Task <TurmaResource> SingleOrDefault(TurmaQueryResource query)
        {
            try
            {
                ParameterExpression argParam     = Expression.Parameter(typeof(Turma), "e");
                Expression          nameProperty = Expression.Property(argParam, "NomeTurma");
                var val1   = (query.NomeTurma != null) ? Expression.Constant(query.NomeTurma) : null;
                var andExp = (val1 != null) ? Expression.Equal(nameProperty, val1) : null;
                var lambda = (andExp != null) ? Expression.Lambda <Func <Turma, bool> >(andExp, argParam) : null;

                if (lambda == null)
                {
                    throw new Exception("Informe ao menos um parâmetro para a consulta");
                }

                var turma = await unitOfWork.Turmas.SingleOrDefault(lambda);

                var turmaResource = mapper.Map <Turma, TurmaResource>(turma);
                return(turmaResource);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #2
0
        public async Task <IActionResult> GetAllFiltered([FromQuery] string nomeTurma = null)
        {
            try
            {
                TurmaQueryResource query = new TurmaQueryResource()
                {
                    NomeTurma = nomeTurma
                };
                var turmas = await service.Find(query);

                return(Ok(turmas));
            }
            catch (Exception)
            {
                return(NotFound());
            }
        }