Пример #1
0
        public async Task <IActionResult> RemoveClassTaskAsync([Required] Guid classId, [FromServices] IDisciplineBusiness disciplineBusiness)
        {
            if (ModelState.IsValid)
            {
                if (!(await _classBusiness.FindByClassIdTaskAsync(classId) is ClassVO classVO))
                {
                    return(NotFound("Não foi possivel encontrar a sala informada!"));
                }

                var coordId = Guid.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

                if (await _courseBusiness.FindByCoordIdTaskAsync(coordId) is CourseVO course)
                {
                    if (course.CourseId != classVO.CourseId)
                    {
                        return(Unauthorized("Você não tem permissão para adicionar salas em outro curso!"));
                    }
                }

                if (await disciplineBusiness.ExistsByClassIdTaskAsync(classId))
                {
                    return(BadRequest("Não é possivel excluir a sala, pois existem disciplinas utilizando-a!"));
                }

                await _classBusiness.RemoveAsync(classVO.ClassId);

                return(NoContent());
            }

            return(BadRequest());
        }