private async void ResponseMoveGroup(Req0006 req, Res0006 res) { await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { Packet0006Received?.Invoke(this, new Packet0006ReceivedEventArgs(req, res)); }); }
public async void RequestMoveGroup(String id, String new_group, String old_group) { Req0006 req = new Req0006() { UserID = id, NewGroupName = new_group, ExpectedOldGroupName = old_group }; await GGTHubProxy.Invoke("RequestMoveGroup", req); }
public void RequestMoveGroup(Req0006 req) { Res0006 res = null; String CurrentLocation = Singleton <DatabaseService> .Instance.GetUserCurrentLocation(req.UserID, out Boolean ex); String SendUser = Singleton <DatabaseService> .Instance.GetUserName(req.UserID); if (ex) { res = new Res0006() { Request = req, SendFrom = SendUser, NewGroupName = "Exception", OldGroupName = "Exception", Message = CurrentLocation }; Clients.Caller.ResponseMoveGroup(req, res); } else { if (CurrentLocation.Equals(req.ExpectedOldGroupName)) { Boolean Result = Singleton <DatabaseService> .Instance.UpdateUserCurrentLocation(req.UserID, req.NewGroupName); if (Result) { Groups.Remove(this.Context.ConnectionId, CurrentLocation); Groups.Add(this.Context.ConnectionId, req.NewGroupName); res = new Res0006() { Request = req, SendFrom = SendUser, NewGroupName = req.NewGroupName, OldGroupName = CurrentLocation, IsMoved = true, Message = $"{CurrentLocation} => {req.NewGroupName} 이동 성공" }; Clients.Caller.ResponseMoveGroup(req, res); if (!String.IsNullOrWhiteSpace(req.ExpectedOldGroupName)) { //Clients.OthersInGroup(req.ExpectedOldGroupName).ResponseMoveGroup(req, res); Clients.Others.ResponseMoveGroup(req, res); } //Clients.OthersInGroup(req.NewGroupName).ResponseMoveGroup(req, res); //20190206 그룹내 전송 Clients.Others.ResponseMoveGroup(req, res); //나 이외에 전송 } else { res = new Res0006() { Request = req, SendFrom = SendUser, NewGroupName = "Exception", OldGroupName = "Exception", Message = "DB갱신에 오류가 있습니다" }; Clients.Caller.ResponseMoveGroup(req, res); } } else { //개발용 로직 if (req.NewGroupName.Equals(Models.CurrentLocation.Init.ToString()) & req.ExpectedOldGroupName.Equals(Models.CurrentLocation.None.ToString())) { res = new Res0006() { Request = req, SendFrom = SendUser, NewGroupName = req.NewGroupName, OldGroupName = req.ExpectedOldGroupName, IsMoved = true, Message = "초기로그인 입니다" }; Clients.Others.ResponseMoveGroup(req, res); //나 이외에 전송 } else { res = new Res0006() { Request = req, SendFrom = SendUser, NewGroupName = "Exception", OldGroupName = "Exception", Message = "요청한 현재 그룹이 서버와 일치하지않습니다" } }; Clients.Caller.ResponseMoveGroup(req, res); } } }