Ejemplo n.º 1
0
        public IHttpActionResult UpdateRoom(int id, [FromBody] RoomNoMemberDTO roomDTO)
        {
            responseData.RequestHelper = Request;

            if (!ModelState.IsValid)
            {
                return(new ResponseMessageResult(responseData.CreateNotValidResponse(modelState: ModelState)));
            }

            Room room = _context.Rooms.SingleOrDefault(r => r.Id == id);

            if (room == null)
            {
                return(new ResponseMessageResult(responseData.CreateNotFoundResponse("room", id)));
            }

            Member member = GetMemberBasedOnUserId();

            bool isRoomCreator = room.MemberId == member.Id;

            if (!isRoomCreator)
            {
                return(new ResponseMessageResult(responseData.CreateResponse(
                                                     message: "Only room creator can update room data.",
                                                     status: HttpStatusCode.Forbidden)));
            }

            var updatedRoom = Mapper.Map <RoomNoMemberDTO, Room>(roomDTO, room);

            _context.SaveChanges();

            return(Ok(Mapper.Map <Room, RoomNoMemberDTO>(room)));
        }
Ejemplo n.º 2
0
        public IHttpActionResult GetRoomData(int id)
        {
            responseData.RequestHelper = Request;

            Room   room   = _context.Rooms.SingleOrDefault(r => r.Id == id);
            Member member = GetMemberBasedOnUserId();

            if (room == null)
            {
                return(new ResponseMessageResult(responseData.CreateNotFoundResponse("room", id)));
            }

            bool authorizedUserHasAccess = !room.IsPrivate || room.Members.Select(m => m.Id == member.Id).ToList().Count() != 0;

            if (!authorizedUserHasAccess)
            {
                return(new ResponseMessageResult(responseData.CreateResponse(status: HttpStatusCode.Forbidden, message: "Only members can access private chat.")));
            }

            RoomNoMemberDTO roomDTO = Mapper.Map <Room, RoomNoMemberDTO>(room);

            return(Ok(roomDTO));
        }