Пример #1
0
        // GET: Message/Inbox
        public ActionResult Inbox()
        {
            ApplicationUserMessage user_message = new ApplicationUserMessage();
            string id          = User.Identity.GetUserId();
            var    userMessage = Db.ApplicationUserMessages.Where(m => m.User_Id.Equals(id)).ToList();
            List <InboxMessageViewModel> viewModel = new List <InboxMessageViewModel>();
            List <Message> listOfMsg = new List <Message>();

            foreach (ApplicationUserMessage um in userMessage)
            {
                listOfMsg.Add(Db.Messages.Find(um.Message_Id));
                viewModel.Add(new InboxMessageViewModel(listOfMsg.Last().Id, listOfMsg.Last().Subject, listOfMsg.Last().Sender.Email, listOfMsg.Last().SendTime, um.Read));
            }
            string         usrId = User.Identity.GetUserId();
            var            grps  = Db.Groups.Where(g => g.Users.Any(u => u.Id.Equals(usrId))).ToList();
            List <Message> msgs  = new List <Message>();

            foreach (Group grp in grps)
            {
                msgs = Db.Messages.Where(m => m.GroupReceivers.Any(g => g.Name.Equals(grp.Name))).ToList();
                foreach (Message msg in msgs)
                {
                    viewModel.Add(new InboxMessageViewModel(msg.Id, msg.Subject, msg.Sender.Email, msg.SendTime, false));
                }
            }
            return(View(viewModel));
        }
Пример #2
0
        public ActionResult Send(SendMessageViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Message m = new Message(User.Identity.GetUserId(), viewModel.Subject, viewModel.Body);
                Db.Messages.Add(m);
                try
                {
                    string[] gReceivers = viewModel.GroupReceivers.Split(',');
                    foreach (string r in gReceivers)
                    {
                        Group grp = Db.Groups.Where(g => g.Name.Equals(r)).First();
                        m.GroupReceivers.Add(grp);
                        Db.SaveChanges();
                    }
                }
                catch (Exception e) {}

                try
                {
                    string[] uReceivers = viewModel.UserReceivers.Split(',');
                    foreach (string r in uReceivers)
                    {
                        ApplicationUserMessage user_message = new ApplicationUserMessage(m.Id, (Db.Users.First(u => u.Email.Equals(r)).Id.ToString()));
                        Db.ApplicationUserMessages.Add(user_message);
                        Db.SaveChanges();
                    }
                }catch (Exception e) {}

                return(RedirectToAction("Sent"));
            }
            return(View());
        }
        public void HideMessages(List <int> messageId, string userId)
        {
            int tempId;

            for (int i = 0; i < messageId.Count; i++)
            {
                tempId = messageId[i];
                if (db.Messages.Any(m => m.Id == tempId && m.ApplicationUserId == userId))
                {
                    db.Messages.Where(m => m.Id == tempId && m.ApplicationUserId == userId).First().IsHiddenForReciver = true;
                }
                ApplicationUserMessage applicationUserMessage = db.ApplicationUserMessages.Where(aum => aum.MessageId == tempId).First();
                if (applicationUserMessage.ApplicationUserId == userId)
                {
                    db.Messages.Where(m => m.Id == tempId).First().IsHiddenForSender = true;
                }
            }

            db.SaveChanges();
        }
        private MessageUserIdPair GetFromUserMessage(int messageId)
        {
            MessageUserIdPair      result = new MessageUserIdPair();
            ApplicationUserMessage tempApplicationUserMessage = db.ApplicationUserMessages.Where(aum => aum.MessageId == messageId).First();

            if (db.Kindergartens.Any(k => k.Id == tempApplicationUserMessage.ApplicationUserId))
            {
                Kindergarten tempKindergarten = db.Kindergartens.Where(su => su.Id == tempApplicationUserMessage.ApplicationUserId).First();
                result.UserId = tempKindergarten.Id;
                result.User   = tempKindergarten.Name;
                result.IsUser = false;
            }
            if (db.SiteUsers.Any(su => su.Id == tempApplicationUserMessage.ApplicationUserId))
            {
                SiteUser tempSiteUser = db.SiteUsers.Where(su => su.Id == tempApplicationUserMessage.ApplicationUserId).First();
                result.UserId = tempSiteUser.Id;
                result.User   = tempSiteUser.FullName;
                result.IsUser = true;
            }
            return(result);
        }