コード例 #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());
        }
コード例 #2
0
ファイル: ClassBusiness.cs プロジェクト: victorlucss/UniLinks
        public async Task <ClassVO> UpdateTaskAsync(ClassVO newClass)
        {
            if (await _classRepository.FindByClassIdTaskAsync(newClass.ClassId) is ClassModel currentClass)
            {
                return(_classConverter.Parse(await _classRepository.UpdateTaskAsync(currentClass, _classConverter.Parse(newClass))));
            }

            return(null);
        }
コード例 #3
0
ファイル: ClassBusiness.cs プロジェクト: victorlucss/UniLinks
        public async Task <ClassVO> AddTasAsync(ClassVO @class)
        {
            if (await _classRepository.FindByURITaskAsync(@class.URI) is null)
            {
                if (await _classRepository.AddTasAsync(_classConverter.Parse(@class)) is ClassModel addedClass)
                {
                    return(_classConverter.Parse(addedClass));
                }
            }

            return(null);
        }
コード例 #4
0
 public IActionResult GetClass(long classId)
 {
     try
     {
         ClassInfo classinfo = _classService.GetClassByClassId(classId);
         ClassVO   classVO   = classinfo;
         // Success
         return(Json(classVO));
     }
     catch (ClassNotFoundException) { return(NotFound(new { msg = "未找到该班级!" })); }
     //classId格式错误,返回400
     catch (ArgumentException)
     {
         return(BadRequest());
     }
 }
コード例 #5
0
        public async Task <IActionResult> UptadeClassTaskAsync([FromBody] ClassVO newClass, [FromServices] CollabAPIService collabAPIService)
        {
            if (ModelState.IsValid)
            {
                if (!(await _classBusiness.FindByClassIdTaskAsync(newClass.ClassId) is ClassVO classVO))
                {
                    return(NotFound("Não existe nenhuma sala com o Id informado"));
                }

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

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

                if (await _classBusiness.FindByURITaskAsync(newClass.URI) is ClassVO currentCourse)
                {
                    if (currentCourse.ClassId != newClass.ClassId)
                    {
                        return(Conflict("Ja existe uma sala com este link"));
                    }
                }

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

                if (await _classBusiness.UpdateTaskAsync(newClass) is ClassVO updatedClass)
                {
                    return(Created($"/Classes/{updatedClass.ClassId}", updatedClass));
                }

                return(BadRequest("Não foi possivel atualizar as informações, verifique se informou os valores corretamente!"));
            }

            return(BadRequest());
        }
コード例 #6
0
ファイル: ClassService.cs プロジェクト: victorlucss/UniLinks
        public async Task <ResultModel <ClassVO> > AddClasseTaskAsync(ClassVO newClass, string token)
        {
            IRestResponse resp = await SendRequestTaskAsync();

            return(resp.StatusCode switch
            {
                HttpStatusCode.Created => new ResultModel <ClassVO>
                {
                    Object = JsonSerializer.Deserialize <ClassVO>(resp.Content, new JsonSerializerOptions {
                        PropertyNameCaseInsensitive = true
                    }),
                    Message = "Sala adicionada com Sucesso!",
                    StatusCode = resp.StatusCode
                },

                _ => new ResultModel <ClassVO>
                {
                    Message = resp.Content.Replace("\"", string.Empty),
                    StatusCode = resp.StatusCode
                }
            });
コード例 #7
0
        public async Task <bool> GetClassInfoTaskAsync(ClassVO @class)
        {
            string[] parts = @class.URI.Split('/');
            if (parts.Length <= 4)
            {
                return(false);
            }

            IRestResponse response = await SendRequestTaskAsync();

            return(response.StatusCode == HttpStatusCode.Forbidden || response.StatusCode == HttpStatusCode.OK);

            async Task <IRestResponse> SendRequestTaskAsync()
            {
                return(await new RequestService()
                {
                    Method = Method.GET,
                    URL = "https://us.bbcollab.com",
                    URN = $"collab/api/guest/{parts[4]}",
                }.ExecuteTaskAsync());
            }
        }