Пример #1
0
        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!"));
        }
Пример #2
0
        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)));
        }