// 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)); }
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); }