Esempio n. 1
0
        public async Task <IActionResult> AddClassTaskAsync([FromBody] ClassVO classVO, [FromServices] CollabAPIService collabAPIService)
        {
            if (ModelState.IsValid)
            {
                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 _classBusiness.FindByURITaskAsync(classVO.URI) is ClassVO)
                {
                    return(Conflict("Ja existe uma sala com esse link"));
                }

                if (!await collabAPIService.GetClassInfoTaskAsync(classVO))
                {
                    return(NotFound("Não foi possivel encontrar as informações da sala informada, verifique se o link está correto!"));
                }

                if (await _classBusiness.AddTasAsync(classVO) is ClassVO addedClass)
                {
                    return(Created($"/Classes/{addedClass.ClassId}", addedClass));
                }

                return(BadRequest("Não possivel adicionar a sala, verifique se os campos estao corretos."));
            }

            return(BadRequest());
        }