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()); }
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); }
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); }
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()); } }
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()); }
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 } });
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()); } }