예제 #1
0
        public JsonResult DeleteChat(string fileName)
        {
            List <UserMessage> listMessages = new List <UserMessage>();

            WriteReadJsonFile.WriteList(listMessages, fileName);
            return(Json(listMessages, JsonRequestBehavior.AllowGet));
        }
 public JsonResult GetMessages(string fileName, int userToId)
 {
     if (Session["Id"] != null && Session["UserRank"].ToString() == "User")
     {
         int            userFromId   = Convert.ToInt32(Session["Id"]);
         List <Message> listMessages = new List <Message>();
         User           userFrom     = _context.Users.FirstOrDefault(u => u.Id == userFromId);
         User           userTo       = _context.Users.FirstOrDefault(u => u.Id == userToId);
         string         fileName1    = userFrom.Email.Substring(0, userFrom.Email.IndexOf("@")) + userTo.Email.Substring(0, userTo.Email.IndexOf("@")) + ".json";
         string         fileName2    = userTo.Email.Substring(0, userTo.Email.IndexOf("@")) + userFrom.Email.Substring(0, userFrom.Email.IndexOf("@")) + ".json";
         if (fileName1 == fileName)
         {
             WriteReadJsonFile.ReadList(ref listMessages, fileName);
             if (listMessages != null)
             {
                 foreach (var m in listMessages)
                 {
                     m.UserFrom = _context.Users.Single(u => u.Id == m.UserFromId);
                     m.UserTo   = _context.Users.Single(u => u.Id == m.UserToId);
                     if (m.UserToId == userFromId)
                     {
                         m.ReadMessage = true;
                     }
                 }
                 WriteReadJsonFile.WriteList(listMessages, fileName1, fileName2);
             }
             return(Json(listMessages, JsonRequestBehavior.AllowGet));
         }
         return(Json("", JsonRequestBehavior.AllowGet));
     }
     return
         (Json("", JsonRequestBehavior.AllowGet));
 }
 public JsonResult AllUsersMessages()
 {
     if (Session["Id"] != null && (Session["UserRank"].ToString() == "User"))
     {
         int  userId   = Convert.ToInt32(Session["Id"]);
         User userInDb = _context.Users.FirstOrDefault(u => u.Id == userId);
         List <UserNewMessages> listNewMessages = new List <UserNewMessages>();
         List <User>            allUsers        = _context.Users.Where(u => u.Id != userId).ToList();
         string fileName = "";
         foreach (var user in allUsers)
         {
             fileName = user.Email.Substring(0, user.Email.IndexOf("@")) + userInDb.Email.Substring(0, userInDb.Email.IndexOf("@")) + ".json";
             List <Message> listMessages = new List <Message>();
             if (WriteReadJsonFile.CheckExistsFile(fileName))
             {
                 WriteReadJsonFile.ReadList <Message>(ref listMessages, fileName);
                 int countMessage = 0;
                 if (listMessages != null)
                 {
                     foreach (var message in listMessages)
                     {
                         if (message.UserToId == userId && !message.ReadMessage)
                         {
                             countMessage++;
                         }
                     }
                     listNewMessages.Add(new UserNewMessages
                     {
                         UserId           = user.Id,
                         CountNewMessages = countMessage
                     });
                 }
                 else
                 {
                     listNewMessages.Add(new UserNewMessages
                     {
                         UserId           = user.Id,
                         CountNewMessages = 0
                     });
                 }
             }
             else
             {
                 listNewMessages.Add(new UserNewMessages
                 {
                     UserId           = user.Id,
                     CountNewMessages = 0
                 });
             }
         }
         return(Json(listNewMessages, JsonRequestBehavior.AllowGet));
     }
     return(Json("", JsonRequestBehavior.AllowGet));
 }
예제 #4
0
        public JsonResult GetMessages(string fileName)
        {
            List <UserMessage> listMessages = new List <UserMessage>();

            WriteReadJsonFile.ReadList(ref listMessages, fileName);
            if (listMessages != null)
            {
                foreach (var m in listMessages)
                {
                    m.UserFrom = _context.Users.Single(u => u.Id == m.UserFromId);
                    m.UserTo   = _context.Users.Single(u => u.Id == m.UserToId);
                }
            }
            return(Json(listMessages, JsonRequestBehavior.AllowGet));
        }
예제 #5
0
        public ActionResult SendMessage(UserMessage userMessage)
        {
            List <UserMessage> listMessages = new List <UserMessage>();

            userMessage.DateTimeSend = DateTime.Now;
            userMessage.ReadMessage  = false;
            var    userFrom = _context.Users.Single(u => u.Id == userMessage.UserFromId);
            var    userTo   = _context.Users.Single(u => u.Id == userMessage.UserToId);
            string fileName = "";

            if (userFrom.UserRank == "Admin" && userTo.UserRank == "Customer")
            {
                fileName = userFrom.Username + userTo.Username + ".json";
            }
            else if (userFrom.UserRank == "Customer" && userTo.UserRank == "Admin")
            {
                fileName = userTo.Username + userFrom.Username + ".json";
            }
            WriteReadJsonFile.ReadList <UserMessage>(ref listMessages, fileName);
            if (listMessages == null)
            {
                listMessages = new List <UserMessage>();
            }
            listMessages.Add(userMessage);
            WriteReadJsonFile.WriteList <UserMessage>(listMessages, fileName);
            if (listMessages != null)
            {
                foreach (var m in listMessages)
                {
                    m.UserFrom = _context.Users.Single(u => u.Id == m.UserFromId);
                    m.UserTo   = _context.Users.Single(u => u.Id == m.UserToId);
                }
            }
            var viewModel = new NewChatViewModel
            {
                UserMessage = new UserMessage
                {
                    UserFrom   = userFrom,
                    UserTo     = userTo,
                    UserToId   = userTo.Id,
                    UserFromId = userFrom.Id
                },
                UserMessages = listMessages,
                Filename     = fileName
            };

            return(View("UserChat", viewModel));
        }
 public ActionResult ChatPage(int userToId)
 {
     if (Session["Id"] != null && Session["UserRank"].ToString() == "User")
     {
         int userFromId = Convert.ToInt32(Session["Id"]);
         if (userFromId == userToId)
         {
             return(HttpNotFound());
         }
         User           userFrom     = _context.Users.FirstOrDefault(u => u.Id == userFromId);
         User           userTo       = _context.Users.FirstOrDefault(u => u.Id == userToId);
         string         fileName     = userFrom.Email.Substring(0, userFrom.Email.IndexOf("@")) + userTo.Email.Substring(0, userTo.Email.IndexOf("@")) + ".json";
         List <Message> listMessages = new List <Message>();
         WriteReadJsonFile.ReadList <Message>(ref listMessages, fileName);
         if (listMessages != null)
         {
             foreach (var m in listMessages)
             {
                 m.UserFrom = _context.Users.Single(u => u.Id == m.UserFromId);
                 m.UserTo   = _context.Users.Single(u => u.Id == m.UserToId);
                 if (m.UserToId == userFromId)
                 {
                     m.ReadMessage = true;
                 }
             }
         }
         string fileName1 = fileName;
         string fileName2 = userTo.Email.Substring(0, userTo.Email.IndexOf("@")) + userFrom.Email.Substring(0, userFrom.Email.IndexOf("@")) + ".json";
         WriteReadJsonFile.WriteList(listMessages, fileName1, fileName2);
         var viewModel = new NewRandomViewModel
         {
             Message = new Message
             {
                 UserFromId = userFromId,
                 UserFrom   = userFrom,
                 UserToId   = userToId,
                 UserTo     = userTo
             },
             UserMessages = listMessages,
             Filename     = fileName
         };
         return(View(viewModel));
     }
     return(HttpNotFound());
 }
        public ActionResult SendMessage(Message userMessage)
        {
            if (Session["Id"] != null && Session["UserRank"].ToString() == "User")
            {
                List <Message> listMessages = new List <Message>();
                userMessage.DateTimeSend = DateTime.Now;
                userMessage.ReadMessage  = false;
                var    userFrom  = _context.Users.Single(u => u.Id == userMessage.UserFromId);
                var    userTo    = _context.Users.Single(u => u.Id == userMessage.UserToId);
                string fileName1 = userFrom.Email.Substring(0, userFrom.Email.IndexOf("@")) + userTo.Email.Substring(0, userTo.Email.IndexOf("@")) + ".json";
                string fileName2 = userTo.Email.Substring(0, userTo.Email.IndexOf("@")) + userFrom.Email.Substring(0, userFrom.Email.IndexOf("@")) + ".json";;

                WriteReadJsonFile.ReadList <Message>(ref listMessages, fileName1);
                if (listMessages == null)
                {
                    listMessages = new List <Message>();
                }
                listMessages.Add(userMessage);
                WriteReadJsonFile.WriteList <Message>(listMessages, fileName1, fileName2);
                if (listMessages != null)
                {
                    foreach (var m in listMessages)
                    {
                        m.UserFrom = _context.Users.Single(u => u.Id == m.UserFromId);
                        m.UserTo   = _context.Users.Single(u => u.Id == m.UserToId);
                    }
                }
                var viewModel = new NewRandomViewModel
                {
                    Message = new Message
                    {
                        UserFrom   = userFrom,
                        UserTo     = userTo,
                        UserToId   = userTo.Id,
                        UserFromId = userFrom.Id
                    },
                    UserMessages = listMessages,
                    Filename     = fileName1
                };
                return(View("ChatPage", viewModel));
            }
            return(HttpNotFound());
        }
예제 #8
0
        public ActionResult UserChat(int id)
        {
            int userId   = Convert.ToInt32(Session["Id"]);
            var userFrom = _context.Users.Single(u => u.Id == userId);
            var userTo   = _context.Users.Single(u => u.Id == id);
            List <UserMessage> listMessages = new List <UserMessage>();

            if (userFrom.UserRank == "Admin" && userTo.UserRank == "Customer")
            {
                string fileName = userFrom.Username + userTo.Username + ".json";
                WriteReadJsonFile.ReadList <UserMessage>(ref listMessages, fileName);
                if (listMessages != null)
                {
                    foreach (var m in listMessages)
                    {
                        m.UserFrom = _context.Users.Single(u => u.Id == m.UserFromId);
                        m.UserTo   = _context.Users.Single(u => u.Id == m.UserToId);
                        if (m.UserToId == userId)
                        {
                            m.ReadMessage = true;
                        }
                    }
                }
                WriteReadJsonFile.WriteList(listMessages, fileName);
                var viewModel = new NewChatViewModel
                {
                    UserMessage = new UserMessage
                    {
                        UserTo     = userTo,
                        UserFrom   = userFrom,
                        UserToId   = userTo.Id,
                        UserFromId = userFrom.Id
                    },
                    UserMessages = listMessages,
                    Filename     = fileName
                };
                return(View(viewModel));
            }
            else if (userFrom.UserRank == "Customer" && userTo.UserRank == "Admin")
            {
                string fileName = userTo.Username + userFrom.Username + ".json";
                WriteReadJsonFile.ReadList <UserMessage>(ref listMessages, fileName);
                if (listMessages != null)
                {
                    foreach (var m in listMessages)
                    {
                        m.UserFrom = _context.Users.Single(u => u.Id == m.UserFromId);
                        m.UserTo   = _context.Users.Single(u => u.Id == m.UserToId);
                        if (m.UserToId == userId)
                        {
                            m.ReadMessage = true;
                        }
                    }
                }
                WriteReadJsonFile.WriteList(listMessages, fileName);
                var viewModel = new NewChatViewModel
                {
                    UserMessage = new UserMessage
                    {
                        UserTo     = userTo,
                        UserFrom   = userFrom,
                        UserToId   = userTo.Id,
                        UserFromId = userFrom.Id
                    },
                    UserMessages = listMessages,
                    Filename     = fileName
                };
                return(View(viewModel));
            }
            return(HttpNotFound());
        }