示例#1
0
    public async void OnClickBtnCreateRoom()
    {
        if (Title.Trim() == null || Title.Trim() == "")
        {
            ErrorMessage = _textResource.GetText(TextCode.PLEASE_ENTER_A_GAME_TITLE);
            return;
        }
        if (!Title.IsGameTitle())
        {
            ErrorMessage = _textResource.GetText(TextCode.TITLE_LENGTH_CAN_NOT_EXCEED_25_CHARACTERS);
            return;
        }

        // 게임모드가 선택이 안된 경우
        if (GameMode == GameMode.NONE)
        {
            ErrorMessage = _textResource.GetText(TextCode.PLEASE_SELECT_GAME_MODE);
            return;
        }

        var room = new RoomForm
        {
            OwnerId  = _setting.Email,
            Title    = Title,
            GameMode = GameMode
        };

        _networkManager.CreateRoom(room);
    }
示例#2
0
 private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     if (!(listBox1.SelectedIndex < 0))
     {
         if (listBox1.SelectedItem != null && listBox1.SelectedItem.ToString() != "")
         {
             bool can = true;
             if (Utils.currentChannel != "" && Utils.currentChannel != null)
             {
                 if (listBox1.SelectedItem.ToString().EndsWith(Utils.currentChannel))
                 {
                     can = false;
                     if (!Utils.roomFormOpened)
                     {
                         Utils.roomFormOpened = true;
                         RoomForm roomForm = new RoomForm();
                         roomForm.Text  = "Rebel Client - " + Utils.currentChannel;
                         Utils.roomForm = roomForm;
                         roomForm.Show();
                     }
                 }
             }
             if (can)
             {
                 Utils.sendString("5" + listBox1.SelectedItem.ToString().Substring(1));
             }
         }
     }
 }
示例#3
0
    /// <summary>
    /// 방을 터치(선택)했을 때
    /// </summary>
    /// <param name="roomId"></param>
    public void OnClickRoom(RoomForm roomForm)
    {
        var list = ScrRoomList.GetComponentsInChildren <Transform>(true);

        // 이전에 선택했던 방을 원래 색으로 되돌림
        if (_selectedRoom != null)
        {
            foreach (var room in list)
            {
                if (room.name.Contains(_selectedRoom.Id))
                {
                    room.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/LobbyPage/IMG_RoomList");
                }
            }
        }

        // 지금 선택한 방의 색을 바꿈
        foreach (var room in list)
        {
            if (room.name.Contains(roomForm.Id))
            {
                room.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/LobbyPage/IMG_RoomListSelect");
            }
        }

        _selectedRoom = roomForm;
    }
示例#4
0
    private void Awake()
    {
        _networkManager = NetworkManager.GetInstance();
        _textResource   = TextResource.GetInstance();
        _setting        = Setting.GetInstance();
        _networkManager.SocketOpen();
        _roomListLoader = new Timer();

        _isShowCreateRoom = false;
        _selectedRoom     = null;

        BtnShop.onClick.AddListener(OnClickBtnShop);
        BtnRank.onClick.AddListener(OnClickBtnRank);
        BtnInventory.onClick.AddListener(OnClickBtnInventory);
        BtnChat.onClick.AddListener(OnClickBtnChat);
        BtnShowCreateRoom.onClick.AddListener(OnClickBtnShowCreateRoom);
        BtnJoin.onClick.AddListener(OnClickBtnJoin);
        BtnShowFriends.onClick.AddListener(OnClickBtnShowFriends);
        BtnCreateRoom.onClick.AddListener(OnClickBtnCreateRoom);
        BtnShowCreateRoomClose.onClick.AddListener(OnClickBtnShowCreateRoomClose);
        BtnBack.onClick.AddListener(OnClickBtnBack);

        SetTextSize();
        SetTextValue();
        SetSocketEvents(_networkManager);
    }
 public void SetData(RoomForm roomInfo)
 {
     RoomName.text     = roomInfo.Name;
     ClientsCount.text = roomInfo.ClientsCount.ToString() + "/" + roomInfo.MaxClients.ToString();
     RoomID            = roomInfo.ID;
     MaxClients        = roomInfo.MaxClients;
 }
示例#6
0
 public RoomFormPresenter(RoomForm form)
 {
     this.form      = form;
     serviceFactory = new ServiceFactory(new PGRepositoryFactory());
     service        = serviceFactory.getRoomService();
     sendToGrid();
 }
示例#7
0
        private void OnAddClick(object sender, EventArgs e)
        {
            Room obj = new Room();

            if (RoomForm.ShowForm(obj))
            {
                this.LoadListData(obj);
            }
        }
示例#8
0
 public void OnCreateRoom(object sender, RoomForm room)
 {
     if (room != null)
     {
         Invoke(() => NextPage("WaitingPage"));
     }
     else
     {
         ErrorMessage = "";
     }
 }
示例#9
0
        private void OnOpenClick(object sender, EventArgs e)
        {
            Room obj = this.GetSelected();

            if (obj != null)
            {
                obj.RefershData();
            }

            if (RoomForm.ShowForm(obj))
            {
                this.LoadListData(obj);
            }
        }
        public async Task <IActionResult> UpdateAsync([FromBody] RoomForm roomForm)
        {
            try
            {
                var modelresources = _mapper.Map <Room>(roomForm);
                _appDbContext.Rooms.Update(modelresources);
                _appDbContext.SaveChanges();

                var res = await _appDbContext.Rooms
                          .Select(RoomViewModel.SelectAllRoom)
                          .ToListAsync();

                return(Ok(res));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
示例#11
0
        public IActionResult GetSession([FromBody] RoomForm roomForm)
        {
            var apiKey    = int.Parse(_config["ApiKey"]);
            var apiSecret = _config["ApiSecret"];
            var opentok   = new OpenTok(apiKey, apiSecret);

            var    roomName = roomForm.RoomName;
            string sessionId;
            string token;

            using (var db = new OpentokContext())
            {
                var room = db.Rooms.Where(r => r.RoomName == roomName).FirstOrDefault();
                if (room != null)
                {
                    sessionId  = room.SessionId;
                    token      = opentok.GenerateToken(sessionId);
                    room.Token = token;
                    db.SaveChanges();
                }
                else
                {
                    var session = opentok.CreateSession();
                    sessionId = session.Id;
                    token     = opentok.GenerateToken(sessionId);
                    var roomInsert = new Room
                    {
                        SessionId = sessionId,
                        Token     = token,
                        RoomName  = roomName
                    };
                    db.Add(roomInsert);
                    db.SaveChanges();
                }
            }
            return(Json(new { sessionId = sessionId, token = token, apiKey = _config["ApiKey"] }));
        }
示例#12
0
        public async Task <IActionResult> Change([FromBody] RoomForm form)
        {
            try
            {
                Identity id = JsonSerializer.Deserialize <Identity>(User.Identity.Name);
                if (id.Guest != null)
                {
                    return(Forbid());
                }
                if (!Helper.isRighGrouptName(form.Name))
                {
                    return(BadRequest(Errors.BadName));
                }
                if (!StaticData.CountryCodes.Contains(form.Country))
                {
                    return(BadRequest(Errors.WrongCountry));
                }
                var room = await _context.Rooms.FirstOrDefaultAsync(r => r.UserId == id.UserId);

                var      slug          = Helper.Slugify(form.Name);
                string[] connectionIds = null;
                if (room == null)
                {
                    if (await _context.Rooms.AnyAsync(r => r.Slug == slug))
                    {
                        return(BadRequest(Errors.RoomNameExist));
                    }
                    await _context.Rooms.AddAsync(new Room
                    {
                        Name        = form.Name,
                        Slug        = slug,
                        Description = form.Description,
                        Country     = form.Country,
                        Password    = form.Password,
                        Limit       = form.Limit,
                        UserId      = id.UserId
                    });
                }
                else
                {
                    if (room.Slug != slug && await _context.Rooms.AnyAsync(r => r.Slug == slug))
                    {
                        return(BadRequest(Errors.RoomNameExist));
                    }
                    if (room.Name != form.Name || room.Country != form.Country)
                    {
                        connectionIds = _state.Connections(room.RoomId);
                    }
                    room.Name        = form.Name;
                    room.Slug        = slug;
                    room.Description = form.Description;
                    room.Country     = form.Country;
                    room.Password    = form.Password;
                    room.Limit       = form.Limit;
                    _context.Rooms.Update(room);
                }
                await _context.SaveChangesAsync();

                if (connectionIds != null)
                {
                    await _hub.Clients.Clients(connectionIds).SendAsync("roomChanged",
                                                                        new { name = form.Name, flag = form.Country });
                }
                return(Ok("ok"));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
示例#13
0
        private void roomsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            RoomForm roomForm = new RoomForm();

            roomForm.ShowDialog();
        }
示例#14
0
        public void openRoomsForm()
        {
            RoomForm form = new RoomForm();

            form.ShowDialog();
        }
示例#15
0
        /// <summary>
        /// 방 삭제 요청
        /// </summary>
        /// <param name="room"></param>
        public void CloseRoom(RoomForm room)
        {
            var json = JsonConvert.SerializeObject(room);

            _io.Emit(SocketEvent.CLOSE, json);
        }
示例#16
0
文件: MainForm.cs 项目: Envy-rb/Obsh
        private void RoomButton_Click(object sender, EventArgs e)
        {
            var form = new RoomForm();

            form.Show(this);
        }
        public static BaseForm getForm(string name)
        {
            BaseForm f = new ObjectForm();

            switch (name)
            {
            case "Object":
                f = new ObjectForm();
                break;

            case "Linq":
                f = new LinqForm();
                break;

            case "People":
                f = new PeopleForm();
                break;

            case "ConnectToUniversityPeople":
                f = new ConnectToUniversityPeopleForm();
                break;

            case "Worker":
                f = new Workers();
                break;

            case "Leadership":
                f = new LeadershipForm();
                break;

            case "Teacher":
                f = new TeacherForm();
                break;

            case "Staff":
                f = new StaffForm();
                break;

            case "Student":
                f = new StudentForm();
                break;

            case "Entrant":
                f = new EntrantForm();
                break;

            case "Thing":
                f = new ThingForm();
                break;

            case "CultureThing":
                f = new CultureThingForm();
                break;

            case "MatherialThing":
                f = new MatherialThingForm();
                break;

            case "Building":
                f = new BuildingForm();
                break;

            case "Room":
                f = new RoomForm();
                break;

            case "PersonalThing":
                f = new RersonalThingForm();
                break;

            case "Literature":
                f = new LiteratureForm();
                break;

            case "Electronic":
                f = new ElectronicForm();
                break;

            case "NotMatherialThing":
                f = new NotMatherialForm();
                break;

            case "GroupOfPeople":
                f = new GroupOfPeopleForm();
                break;

            case "Faculty":
                f = new FacultyForm();
                break;

            case "Group":
                f = new GroupForm();
                break;

            case "ManageOfPeople":
                f = new ManageOfPeopleForm();
                break;

            case "Mark":
                f = new MarkForm();
                break;

            case "Award":
                f = new AwardForm();
                break;

            //case "Event":
            //    f = new EventForm();
            //    break;
            //case "ControlKnowledge":
            //    f = new ControlKnowledgeForm();
            //    break;
            case "Subject":
                f = new SubjectForm();
                break;
            }
            return(f);
        }
示例#18
0
        /// <summary>
        /// 방 입장 요청
        /// </summary>
        /// <param name="room"></param>
        public void JoinRoom(RoomForm room)
        {
            var json = JsonConvert.SerializeObject(room);

            _io.Emit(SocketEvent.JOIN, json);
        }