public IActionResult Answer([FromBody] MAnswer answer, string roomCode, int activityId) { var authenticatedPersonId = HttpContext.Session.GetSessionPersonId(); var person = _uPerson.GetById(authenticatedPersonId); var activity = _uActivity.GetById(activityId); var room = _uRoom.GetByCode(roomCode); var roomsIds = _uRelStudentRoom.GetRoomIdByPersonId(authenticatedPersonId); if (room == null) return BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, $"A sala com código \"{roomCode}\" não existe!")); if (activity == null) return BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "A atividade não existe!")); if (room.CurrentState != (int)ERoomState.Open) return StatusCode((int)HttpStatusCode.Unauthorized, ResponseContent.Create(null, HttpStatusCode.Unauthorized, "Você não tem acesso a essa sala pois ela esta fechada!")); if (activity.CurrentState == (int)EActivityState.Building) return StatusCode((int)HttpStatusCode.Unauthorized, ResponseContent.Create(null, HttpStatusCode.Unauthorized, "Você não tem acesso a essa atividade!")); if (!roomsIds.Contains(room.Id)) return StatusCode((int)HttpStatusCode.Unauthorized, ResponseContent.Create(null, HttpStatusCode.Unauthorized, "Você não tem acesso a essa sala/atividade!")); if (string.IsNullOrEmpty(answer.Answer)) return BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "É obrigatório responder a atividade!")); if (_uAnswer.GetByUser(activity.Id, authenticatedPersonId) != null) return BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "Você já respondeu essa atividade!")); var answerDb = _bAnswer.Save(authenticatedPersonId, activity.Id, room.Id, answer.Answer); if (answer.Attachments != null) { var filesName = FileExtensions.CopyFromTo(answer.Attachments, _configuration["Directory:TEMP"], _configuration["Directory:UPLOAD"]); var documents = _bDocument.Save(filesName, person); _bRelUploadAnswer.Save(documents, answerDb); } _bHistory.SaveHistory(authenticatedPersonId, "Usuário respondeu a uma atividade"); return Ok(ResponseContent.Create(null, HttpStatusCode.OK, "Atividade respondida!")); }
public IActionResult Me() { if (!HttpContext.Session.IsAuth()) { return(StatusCode((int)HttpStatusCode.Unauthorized, ResponseContent.Create(null, HttpStatusCode.Unauthorized, "Não autorizado!"))); } var person = _uPerson.GetById(HttpContext.Session.GetSessionPersonId()); var mPerson = new MPerson { Name = person.Name, Cpf = person.Cpf, Email = person.Email, Institution = new MInstitution { Id = person.Institution?.Id ?? 0, Name = person.Institution?.Name }, Profile = person.Profile, Photo = person.PhotoPath }; return(Ok(ResponseContent.Create(mPerson, HttpStatusCode.OK, null))); }