コード例 #1
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
 public static chat.model.Message getMessage(ChatRequest request)
 {
     chat.model.User    sender   = new chat.model.User(request.Message.SenderId);
     chat.model.User    receiver = new chat.model.User(request.Message.ReceiverId);
     chat.model.Message message  = new chat.model.Message(sender, receiver, request.Message.Text);
     return(message);
 }
コード例 #2
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
        public static ChatRequest createLoggedFriendsRequest(chat.model.User user)
        {
            proto.User  userDTO = proto.User.CreateBuilder().SetId(user.Id).Build();
            ChatRequest request = ChatRequest.CreateBuilder().SetType(ChatRequest.Types.Type.GetLoggedFriends)
                                  .SetUser(userDTO).Build();

            return(request);
        }
コード例 #3
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
        public static ChatRequest createLoginRequest(chat.model.User user)
        {
            proto.User  userDTO = proto.User.CreateBuilder().SetId(user.Id).SetPasswd(user.Password).Build();
            ChatRequest request = ChatRequest.CreateBuilder().SetType(ChatRequest.Types.Type.Login)
                                  .SetUser(userDTO).Build();

            return(request);
        }
コード例 #4
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
        public static ChatResponse createFriendLoggedOutResponse(chat.model.User user)
        {
            proto.User   userDTO  = proto.User.CreateBuilder().SetId(user.Id).Build();
            ChatResponse response = ChatResponse.CreateBuilder()
                                    .SetType(ChatResponse.Types.Type.FriendLoggedOut)
                                    .SetUser(userDTO).Build();

            return(response);
        }
コード例 #5
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
 public static chat.model.User[] getFriends(ChatResponse response)
 {
     chat.model.User[] friends = new chat.model.User[response.Friends.Count];
     for (int i = 0; i < response.Friends.Count; i++)
     {
         chat.model.User user = new chat.model.User(response.Friends[i].Id);
         friends[i] = user;
     }
     return(friends);
 }
コード例 #6
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
        public static ChatResponse createFriendLoggedOutResponse(chat.model.User user)
        {
            proto.User userDTO = new proto.User {
                Id = user.Id
            };
            ChatResponse response = new ChatResponse {
                Type = ChatResponse.Types.Type.FriendLoggedOut, User = userDTO
            };

            return(response);
        }
コード例 #7
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
        public static ChatRequest createLogoutRequest(chat.model.User user)
        {
            proto.User userDTO = new proto.User {
                Id = user.Id
            };
            ChatRequest request = new ChatRequest {
                Type = ChatRequest.Types.Type.Logout, User = userDTO
            };

            return(request);
        }
コード例 #8
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
        public static ChatRequest createLoginRequest(chat.model.User user)
        {
            //new proto.User {Id = user.Id, Passwd = user.Password};
            proto.User userDTO = new proto.User {
                Id = user.Id, Passwd = user.Password
            };
            ChatRequest request = new ChatRequest {
                Type = ChatRequest.Types.Type.Login, User = userDTO
            };

            return(request);
        }
コード例 #9
0
 public virtual void friendLoggedIn(chat.model.User friend)
 {
     //UserDTO udto =DTOUtils.getDTO(friend);
     Console.WriteLine("Friend logged in " + friend);
     try
     {
         sendResponse(ProtoUtils.createFriendLoggedInResponse(friend));
     }
     catch (Exception e)
     {
         Console.WriteLine(e.StackTrace);
     }
 }
コード例 #10
0
        private ChatResponse handleRequest(ChatRequest request)
        {
            ChatResponse response = null;

            ChatRequest.Types.Type reqType = request.Type;
            switch (reqType)
            {
            case ChatRequest.Types.Type.Login:
            {
                Console.WriteLine("Login request ...");
                //LoginRequest logReq =(LoginRequest)request;
                //UserDTO udto =logReq.User;
                chat.model.User user = ProtoUtils.getUser(request);
                try
                {
                    lock (server)
                    {
                        server.login(user, this);
                    }
                    return(ProtoUtils.createOkResponse());
                }
                catch (ChatException e)
                {
                    connected = false;
                    return(ProtoUtils.createErrorResponse(e.Message));
                }
            }

            case ChatRequest.Types.Type.Logout:
            {
                Console.WriteLine("Logout request");
                //LogoutRequest logReq =(LogoutRequest)request;
                //UserDTO udto =logReq.User;
                chat.model.User user = ProtoUtils.getUser(request);
                try
                {
                    lock (server)
                    {
                        server.logout(user, this);
                    }
                    connected = false;
                    return(ProtoUtils.createOkResponse());
                }
                catch (ChatException e)
                {
                    return(ProtoUtils.createErrorResponse(e.Message));
                }
            }

            case ChatRequest.Types.Type.SendMessage:
            {
                Console.WriteLine("SendMessageRequest ...");
                //SendMessageRequest senReq =(SendMessageRequest)request;
                //MessageDTO mdto =senReq.Message;
                chat.model.Message message = ProtoUtils.getMessage(request);
                try
                {
                    lock (server)
                    {
                        server.sendMessage(message);
                    }
                    return(ProtoUtils.createOkResponse());
                }
                catch (ChatException e)
                {
                    return(ProtoUtils.createErrorResponse(e.Message));
                }
            }

            case ChatRequest.Types.Type.GetLoggedFriends:
            {
                Console.WriteLine("GetLoggedFriends Request ...");
                //GetLoggedFriendsRequest getReq =(GetLoggedFriendsRequest)request;
                //UserDTO udto =getReq.User;
                chat.model.User user = ProtoUtils.getUser(request);  //DTOUtils.getFromDTO(udto);
                try
                {
                    chat.model.User[] friends;
                    lock (server)
                    {
                        friends = server.getLoggedFriends(user);
                    }
                    //UserDTO[] frDTO =DTOUtils.getDTO(friends);
                    return(ProtoUtils.createLoggedFriendsResponse(friends));
                }
                catch (ChatException e)
                {
                    return(ProtoUtils.createErrorResponse(e.Message));
                }
            }
            }
            return(response);
        }
コード例 #11
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
 public static chat.model.User getUser(ChatRequest request)
 {
     chat.model.User user = new chat.model.User(request.User.Id);
     user.Password = request.User.Passwd;
     return(user);
 }
コード例 #12
0
ファイル: ProtoUtils.cs プロジェクト: haja-fgabriel/mpp
 public static chat.model.User getUser(ChatResponse response)
 {
     chat.model.User user = new chat.model.User(response.User.Id);
     return(user);
 }