示例#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!")));
        }
示例#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!"));
        }
示例#3
0
        public void ValidRoom(URoom uRoom, ref List <MModelError> errors)
        {
            var roomExisting = uRoom.GetByCode(Code);

            if (string.IsNullOrEmpty(Name))
            {
                errors.Add(new MModelError
                {
                    HasError     = true,
                    MessageError = "Obrigatório",
                    Property     = "Name"
                });
            }

            if (roomExisting != null)
            {
                errors.Add(new MModelError
                {
                    HasError     = true,
                    MessageError = "Já existe uma sala com esse código!",
                    Property     = "Code"
                });
            }
        }