Ejemplo n.º 1
0
        public IActionResult OpenRoom(string roomCode)
        {
            var authenticatedUserId = HttpContext.Session.GetSessionPersonId();
            var room = _uRoom.GetByCode(roomCode);

            if (room == null)
            {
                return(BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, $"A sala com código \"{roomCode}\" não existe!")));
            }

            if (room.Person.Id != authenticatedUserId)
            {
                return(StatusCode((int)HttpStatusCode.Unauthorized, ResponseContent.Create(null, HttpStatusCode.Unauthorized, "Você não tem acesso a essa sala!")));
            }

            if (room.CurrentState == (int)ERoomState.Open)
            {
                return(BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "A sala já está aberta!")));
            }

            if (room.CurrentState == (int)ERoomState.Closed)
            {
                return(BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "A não pode ser aberta depois de fechada!")));
            }

            room.CurrentState = (int)ERoomState.Open;
            room.StartDate    = DateTime.Now;
            _bRoom.SaveOrUpdate(room);

            _bHistory.SaveHistory(authenticatedUserId, "Usuário abriu uma sala");

            return(Ok(ResponseContent.Create(null, HttpStatusCode.OK, "A sala foi aberta com sucesso!")));
        }
Ejemplo n.º 2
0
        public IActionResult Join(string roomCode)
        {
            var authenticatedPersonId = HttpContext.Session.GetSessionPersonId();
            var roomsIds = _uRelStudentRoom.GetRoomIdByPersonId(authenticatedPersonId);
            var room = _uRoom.GetByCode(roomCode);
            if (room == null)
                return BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, $"A sala com código \"{roomCode}\" não existe!"));

            if (room.CurrentState != (int)ERoomState.Open)
                return BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "Você não pode entrar nessa sala pois ela não está aberta!"));

            if (roomsIds.Contains(room.Id))
                return BadRequest(ResponseContent.Create(null, HttpStatusCode.BadRequest, "Você já está nessa sala!"));

            _bRelStudentRoom.Save(authenticatedPersonId, room.Id);
            room.NumberOfStudents++;
            _bRoom.SaveOrUpdate(room);
            _bHistory.SaveHistory(authenticatedPersonId, "Usuário entrou em uma sala");

            return Ok(ResponseContent.Create(null, HttpStatusCode.OK, "Você entrou na sala!"));
        }