Exemplo n.º 1
0
 public PrivateChat(string p_first_person_user_name, string p_second_person_user_name, int p_chat_id, ChatSend p_send_chat_message_to_user, StartEjectedChatUserInform p_start_ejected_user_chat_inform_dialog
                    , RemoveChat p_remove_chat_from_manager, IsLoggedIn p_is_logged_in, StartClientSomeoneJoinedChatInform p_start_client_someone_joined_chat_inform)
 {
     base.BaseConstruct(TypeOfChat.Private, p_chat_id, p_send_chat_message_to_user, p_remove_chat_from_manager, p_start_ejected_user_chat_inform_dialog, p_is_logged_in);
     all_users       = new List <ChatUser>();
     max_users_count = 2;
     min_user_count  = 1;
     status          = PrivateChatStatus.UnAccepted;
     start_client_someone_joined_chat_inform = p_start_client_someone_joined_chat_inform;
     invited_user_name = p_second_person_user_name;
     all_users.Add(new ChatUser(p_first_person_user_name, new UserSendChatMessage(CH_ChatSend)));
 }
Exemplo n.º 2
0
        public Se_BaseBooleanFunctionResult GetAnswerToChatInvitation(string p_user_name, bool p_answer)
        {
            if (status != PrivateChatStatus.UnAccepted)
            {
                return(new Se_BooleanFunctionRejResult("this chat already accepeted"));
            }
            if (invited_user_name != p_user_name)
            {
                return(new Se_BooleanFunctionRejResult("you are not invited to this chat."));
            }
            if (p_answer == true)
            {
                if (all_users.Count > 2)
                {
                    return(new Se_BooleanFunctionRejResult("chat is full"));
                }
                if (all_users.Count == 0)
                {
                    return(new Se_BooleanFunctionRejResult("incorrect state;"));
                }
                if (all_users.Contains(new ChatUser(p_user_name, new UserSendChatMessage(CH_ChatSend))))
                {
                    return(new Se_BooleanFunctionRejResult("youre name is already in this chat"));
                }

                all_users.Add(new ChatUser(p_user_name, CH_ChatSend));
                start_client_someone_joined_chat_inform(all_users[0].Get_user_name, p_user_name, chat_id, chat_type);
                status = PrivateChatStatus.Accepted;
                return(new Se_BooleanFunctionAccResult());
            }
            else
            {
                if (all_users.Count > 2)
                {
                    return(new Se_BooleanFunctionRejResult("chat is full"));
                }
                if (all_users.Count > 0)
                {
                    start_ejected_user_chat_inform_dialog(all_users[0].Get_user_name, Get_chat_id, p_user_name + " didnt accept your invite to chat", chat_type);
                }
                all_users.Clear();
                remove_chat_from_manager(chat_id);
                return(new Se_BooleanFunctionAccResult());
            }
        }