/// <summary>
        /// Add Message
        /// </summary>
        /// <param name="oneMessage">One message (text, voice, video)</param>
        /// <param name="typeConversation">Type conversation (Enum TypeConversation)</param>
        /// <returns>true if add successfull</returns>
        bool IOperate.AddMessage(ChatMessage oneMessage, TypeConversation typeConversation)
        {
            bool result = false;
            try
            {
                //Chat
                if (typeConversation == TypeConversation.Chat)
                {
                    FileStream fs = new FileStream(Manager.tempChatDirectory + "\\fileDatabase.txt", FileMode.OpenOrCreate, FileAccess.Write);
                    StreamWriter m_streamWriter = new StreamWriter(fs);
                    m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

                    //sender
                    m_streamWriter.WriteLine("Sender: " + oneMessage.Sender);

                    //recipients
                    string recipients = string.Empty;
                    foreach (string oneRecipient in oneMessage.Recipients)
                    {
                        if (!string.IsNullOrEmpty(recipients))
                        {
                            recipients += ", ";
                        }
                        recipients += oneRecipient;
                    }
                    m_streamWriter.WriteLine("Recipients: " + recipients);

                    //information
                    m_streamWriter.WriteLine("Date: " + oneMessage.Date.ToString());
                    m_streamWriter.WriteLine("Message: " + oneMessage.Message);
                    m_streamWriter.WriteLine("");
                    m_streamWriter.Flush();
                    m_streamWriter.Close();

                    CountChatMessage++;
                    result = true;
                }

                //Voice
                else if (typeConversation == TypeConversation.Audio)
                {
                    //not implement
                }

                //Video
                else if (typeConversation == TypeConversation.Video)
                {
                    //not implement
                }
            }
            catch (Exception ex)
            {
                ErrorCode = ex.Message;
            }
            return result;
        }
Exemple #2
0
        /// <summary>
        /// Change status message
        /// </summary>
        /// <remarks>
        /// Chat messages
        /// </remarks>
        /// <param name="chatmessage">talk to person (always) one person</param>
        /// <param name="status">status of talk</param>
        private void ChangeMessageStatus(SKYPE4COMLib.ChatMessage chatmessage, SKYPE4COMLib.TChatMessageStatus status)
        {
            try
            {
                //chat receive
                if ((status == TChatMessageStatus.cmsReceived) &&
                    (chatmessage.Type == TChatMessageType.cmeSaid))
                {
                    List<string> listOfRecipients = new List<string>();
                    if (chatmessage.Chat.Type == TChatType.chatTypeMultiChat)
                    {
                        //conferenc talk > 2 users
                        UserCollection collectionOfUsers = chatmessage.Chat.Members as UserCollection;
                        foreach (User oneUser in collectionOfUsers)
                        {
                            listOfRecipients.Add(oneUser.Handle);
                        }
                    }
                    else
                    {
                        //pair talk < 3 users
                        listOfRecipients.Add(skype.CurrentUser.Handle);
                    }
                    ChatMessage receiveChatMessage = new ChatMessage(chatmessage.FromHandle,
                                                                     listOfRecipients,
                                                                     chatmessage.Body,
                                                                     chatmessage.Timestamp,
                                                                     chatmessage.Chat.Blob);
                    interfaceToOperate.AddMessage(receiveChatMessage, TypeConversation.Chat);
                }

                //chat send
                else if ((status == TChatMessageStatus.cmsSending) &&
                         (chatmessage.Type == TChatMessageType.cmeSaid))
                {
                    List<string> listOfRecipients = new List<string>();
                    string recipient = string.Empty;
                    if (chatmessage.Chat.Type == TChatType.chatTypeMultiChat)
                    {
                        //conferenc talk > 2 users
                        UserCollection collectOfUsers = chatmessage.Chat.Members as UserCollection;
                        foreach (User oneUser in collectOfUsers)
                        {
                            if (oneUser.Handle != skype.CurrentUser.Handle)
                            {
                                //if itsn't me
                                listOfRecipients.Add(oneUser.Handle);
                            }
                        }
                    }
                    else
                    {
                        //talk in one person
                        recipient = chatmessage.Chat.DialogPartner;
                        listOfRecipients.Add(recipient);
                    }
                    ChatMessage receiveChatMessage = new ChatMessage(chatmessage.FromHandle,
                                                                     listOfRecipients,
                                                                     chatmessage.Body,
                                                                     chatmessage.Timestamp,
                                                                     chatmessage.Chat.Blob);
                    interfaceToOperate.AddMessage(receiveChatMessage, TypeConversation.Chat);
                }
            }
            catch (Exception ex)
            {
                ErrorCode = ex.Message;
            }
        }
        /// <summary>
        /// Delete Message
        /// </summary>
        /// <param name="oneMessage">One message (text, voice, video)</param>
        /// <param name="typeConversation">Type conversation (Enum TypeConversation)</param>
        /// <returns>true if add successfull</returns>
        bool IOperate.DeleteMessage(ChatMessage oneMessage, TypeConversation typeConversation)
        {
            bool result = false;
            try
            {
                //Chat
                if (typeConversation == TypeConversation.Chat)
                {
                    //not yet implement
                    //CountChatMessage--;
                    //result = true;
                }

                //Voice
                else if (typeConversation == TypeConversation.Audio)
                {
                    //not implement
                }

                //Video
                else if (typeConversation == TypeConversation.Video)
                {
                    //not implement
                }
            }
            catch (Exception ex)
            {
                ErrorCode = ex.Message;
            }
            return result;
        }
 bool IOperate.DeleteMessage(ChatMessage oneMessage, TypeConversation typeConversation)
 {
     return true;
 }