Esempio n. 1
0
        // ---------------------------- FOR GUI USES ---------------------------- //
        /// <summary>
        /// This method takes user's choices of sorting and filters and updates the messages screen following this.
        /// </summary>
        /// <param name="Operations">The operation to make on certain list.</param>
        public void refresh(string[] filters, bool checkTime, ISort sorter, bool ascending)
        {
            _ascending = ascending;
            if (!(filters[0] == ""))
            {
                msgHandler.addGroupFilter(filters[0]);
            }
            if (!(filters[1] == ""))
            {
                msgHandler.addNicknameFilter(filters[1]);
            }
            if (!checkTime)
            {
                messages.Clear();
            }
            retrieveMessages(checkTime);
            messages = sorter.DoAction(messages);
            MessageConvertor       msgConvertor    = new MessageConvertor();
            List <ReadOnlyMessage> newReadOnlyList = new List <ReadOnlyMessage>();

            foreach (Message msg in messages)
            {
                ReadOnlyMessage roMsg = msgConvertor.convertToReadOnly(msg);
                newReadOnlyList.Add(roMsg);
            }
            messagesToPrint = newReadOnlyList;
        }
Esempio n. 2
0
        /// <summary>
        /// updates the message list after messages retrieved
        /// </summary>
        /// <param name="msgs"></param>
        /// <param name="clear"></param>
        /// <returns></returns>
        private bool updateMessages(List <IMessage> msgs, bool clear)
        {
            bool ans = false;

            if (msgs == null)
            {
                return(false);
            }
            MessageConvertor messageConvertor = new MessageConvertor();

            foreach (IMessage msg in msgs)
            {
                Message tMsg = messageConvertor.convertToMessage(msg);
                if (tMsg == null)
                {
                    continue;
                }
                removeMessage();
                if (clear)
                {
                    messages.Add(tMsg);
                    ans = true;
                }
                else if (!messages.Contains(tMsg))
                {
                    messages.Add(tMsg);
                    ans = true;
                }
            }
            return(ans);
        }
Esempio n. 3
0
        /// <summary>
        /// sends message from the logged in user. connects between presentation layer and User class
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public void send(string message)
        {
            try
            {
                Message msg = loggedinUser.send(message, url, DateTime.Now);  //send the message to the server address
                if (msg != null)
                {
                    removeMessage();
                    MessageConvertor msgConvertor = new MessageConvertor();
                    IMessage         imsg         = msgConvertor.convertToIMessage(msg);
                    // res = msgConvertor.convertToReadOnly(msg);

                    msgHandler.sendMessage(imsg);//save the message into the storage file
                    logger.logInfoMessage("The message were delivered successfully");
                }
            }
            catch
            { }
        }
Esempio n. 4
0
 /// <summary>
 /// this method is called in case of editing exist message request is made by the user
 /// </summary>
 /// <param name="oldMessage">the message to edit</param>
 /// <param name="updatedBody">the updated content</param>
 public void update(ReadOnlyMessage oldMessage, string updatedBody)
 {
     try
     {
         //check its legal to edit this message
         if (!oldMessage.nickname.Equals(loggedinUser.nickName))
         {
             logger.logWarnMessage("Failed to edit a message which does not belong to the connected user");
         }
         else
         {
             _dateTime = DateTime.UtcNow;
             MessageConvertor mc      = new MessageConvertor();
             Message          message = mc.convertFromReadOnlyToMessage(oldMessage);
             messages.Remove(message);
             message.updateBody(updatedBody);
             message.updateDate(_dateTime);
             IMessage imsg = mc.convertToIMessage(message);
             msgHandler.updateMessage(imsg);//save the message into the storage file
             logger.logInfoMessage("The message were edited successfully");
         }
     }
     catch {}
 }