コード例 #1
0
        //public async Task<MessagingViewModel> SendMessage(string FromUserName, int LoggedInUserIdint,int UserToMessageId, string content)
        public async Task <MessagingViewModel> SendMessage(Message m)
        {
            MessagingViewModel viewModel = await _businessLogicClass.sendMessage(m.FromUserName, m.FromUserId, m.ToUserId, m.Content);

            //MessagingViewModel viewModel = await _businessLogicClass.GetMessagesViewModel(UserToMessageId);
            return(viewModel);
        }
コード例 #2
0
        // GET: Messaging/Create
        public ActionResult Create()
        {
            string             UserId    = System.Web.HttpContext.Current.User.Identity.GetUserId();
            MessagingViewModel viewModel = new MessagingViewModel();

            viewModel.recipients = new List <SelectListItem>();
            var instructors = db.instructorModel.ToList();
            var students    = db.studentModels.ToList();

            foreach (InstructorModel instructor in instructors)
            {
                if (instructor.instructor_account_Id != UserId)
                {
                    viewModel.recipients.Add(new SelectListItem()
                    {
                        Text = "Instructor: " + instructor.lName + ", " + instructor.fName, Value = instructor.instructor_account_Id
                    });
                }
            }
            foreach (StudentModels student in students)
            {
                if (student.student_account_Id != UserId)
                {
                    viewModel.recipients.Add(new SelectListItem()
                    {
                        Text = "Student: " + student.lName + ", " + student.fName, Value = student.student_account_Id
                    });
                }
            }
            return(View(viewModel));
        }
コード例 #3
0
        public async Task <IActionResult> Index()
        {
            var currentUser = await userManager.GetUserAsync(User);

            userRepository.ChangeMsgsStatus(currentUser, false);
            // getting the most recent 5 messages
            var msgs = messageRepository.GetMessagesR(currentUser.Id);

            Dictionary <string, Image> profileImgs = new Dictionary <string, Image>();

            foreach (var msg in msgs)
            {
                var img = imageRepository.GetImages(msg.SenderId).FirstOrDefault(m => m.IsProfileImg == true);
                if (!profileImgs.ContainsKey(msg.SenderId))
                {
                    profileImgs.Add(msg.SenderId, img);
                }
            }

            var allMsgs = msgs.OrderByDescending(m => m.MessageDate)
                          .GroupBy(m => m.Sender.FullName).Take(5);

            var msgViewModel = new MessagingViewModel
            {
                RecievedMessages = allMsgs,
                ProfileImages    = profileImgs
            };

            return(View(msgViewModel));
        }
コード例 #4
0
        public async Task <IActionResult> Message(string id)
        {
            var playgroundReciver = await _userManager.FindByIdAsync(id);

            if (playgroundReciver == null)
            {
                return(NotFound());
            }

            var currentUser = await _userManager.GetUserAsync(User);

            var allMessages = _messageRepository.GetMessages(currentUser.Id, playgroundReciver.Id).OrderByDescending(m => m.MessageDate);

            Dictionary <string, Image> profileImgs = new Dictionary <string, Image>();

            var img = _imageRepository.GetImages(playgroundReciver.Id).FirstOrDefault(m => m.IsProfileImg == true);

            if (!profileImgs.ContainsKey(playgroundReciver.Id))
            {
                profileImgs.Add(playgroundReciver.Id, img);
            }

            MessagingViewModel messagingViewModel = new MessagingViewModel
            {
                CurrentPage   = playgroundReciver.FullName,
                EntityId      = id,
                Messages      = allMessages,
                ProfileImages = profileImgs
            };

            return(View(messagingViewModel));
        }
コード例 #5
0
        public void loadViews()
        {
            MessagingViewModel viewModel = new MessagingViewModel();

            this.DetachedMessagingView = new MessagingWindowOutside(viewModel);
            this.LargeMessagingView    = new MessagingWindow(viewModel);
        }
コード例 #6
0
        public MessagingView()
        {
            InitializeComponent();
            Visibility = Visibility.Visible;
            var messagingViewModel = new MessagingViewModel();

            DataContext = messagingViewModel;
        }
コード例 #7
0
        public MessagingViewModel GetMessagingViewModel(int loggedInUserId, int usertomessageId, List <Message> Messages, string LoggedInUserName, string userToMessageUserName)
        {
            MessagingViewModel viewModel = new MessagingViewModel();

            viewModel.CurrentUserId           = loggedInUserId;
            viewModel.currentUserName         = LoggedInUserName;
            viewModel.friendToMessageUserId   = usertomessageId;
            viewModel.friendToMessageUserName = userToMessageUserName;
            viewModel.messages = Messages;

            return(viewModel);
        }
        /// <summary>
        /// returns a messageviewModel for 2 users
        /// </summary>
        /// <param name="UserToMessageId"></param>
        /// <returns></returns>
        public async Task <MessagingViewModel> GetMessagesViewModel(int LoggedInUserIdint, int UserToMessageId)
        {
            User LoginUser = await GetUserByIdAsync(LoggedInUserIdint);

            User user = await GetUserByIdAsync(UserToMessageId);

            List <Message> Messages = await GetMessages2users(UserToMessageId, LoggedInUserIdint);

            MessagingViewModel viewModel = _mapperClass.GetMessagingViewModel(LoggedInUserIdint, user.Id, Messages, LoginUser.UserName, user.UserName);

            return(viewModel);
        }
コード例 #9
0
        // GET: Messaging/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MessagingModel message = db.messagingModel.Find(id);

            if (message == null)
            {
                return(HttpNotFound());
            }
            MessagingViewModel     viewModel   = new MessagingViewModel();
            List <StudentModels>   students    = db.studentModels.ToList();
            List <InstructorModel> instructors = db.instructorModel.ToList();
            string UserId = System.Web.HttpContext.Current.User.Identity.GetUserId();

            if (message.recieving_id == UserId)
            {
                message.read = true;
            }
            foreach (StudentModels student in students)
            {
                string name = student.fName + " " + student.lName;
                if (student.student_account_Id == message.recieving_id)
                {
                    viewModel.recip = name;
                }
                if (student.student_account_Id == message.sending_id)
                {
                    viewModel.sender = name;
                }
            }
            foreach (InstructorModel instructor in instructors)
            {
                string name = instructor.fName + " " + instructor.lName;
                if (instructor.instructor_account_Id == message.recieving_id)
                {
                    viewModel.recip = name;
                }
                if (instructor.instructor_account_Id == message.sending_id)
                {
                    viewModel.sender = name;
                }
            }
            message.receiving_User = db.Users.Find(message.recieving_id);
            message.sending_User   = db.Users.Find(message.sending_id);
            viewModel.Message      = message;
            db.SaveChanges();
            return(View(viewModel));
        }
        public async Task <MessagingViewModel> sendMessage(string FromUserName, int LoggedInUserIdint, int UserToMessageId, string content)
        {
            await _repository.SaveMessage(FromUserName, UserToMessageId, LoggedInUserIdint, content);

            User LoginUser = await GetUserByIdAsync(LoggedInUserIdint);

            User user = await GetUserByIdAsync(UserToMessageId);

            List <Message> Messages = await GetMessages2users(UserToMessageId, LoggedInUserIdint);

            MessagingViewModel viewModel = _mapperClass.GetMessagingViewModel(LoggedInUserIdint, user.Id, Messages, LoginUser.UserName, user.UserName);

            return(viewModel);
        }
コード例 #11
0
        public ActionResult MessagesPerPerson_ajax(string neighborEmailId)
        {
            MessagingViewModel mvm = new MessagingViewModel();

            var me = User.Identity.Name;

            mvm.me       = db.Users.FirstOrDefault(u => u.Email == User.Identity.Name);
            mvm.neighbor = db.Users.FirstOrDefault(u => u.Email.ToUpper().Trim() == neighborEmailId.ToUpper().Trim());

            mvm.messages = db.Messages
                           .Where(m => (m.fromUser.ToUpper().Trim() == me.ToUpper().Trim() ||
                                        m.toUser.ToUpper().Trim() == me.ToUpper().Trim()) && ((m.fromUser + m.toUser).Replace(me, "").ToUpper().Trim() == neighborEmailId.ToUpper()))
                           .OrderByDescending(m => m.timeStamp)
                           .Take(10).ToList();

            return(Json(mvm, JsonRequestBehavior.AllowGet));
        }
コード例 #12
0
        // GET: Messaging
        public ActionResult Inbox()
        {
            var messages = db.messagingModel.ToList();

            messages = messages.OrderByDescending(x => x.dateSent).ToList();
            string UserId = System.Web.HttpContext.Current.User.Identity.GetUserId();
            List <StudentModels>      students    = db.studentModels.ToList();
            List <InstructorModel>    instructors = db.instructorModel.ToList();
            List <MessagingViewModel> viewModel   = new List <MessagingViewModel>();


            foreach (MessagingModel message in messages)
            {
                MessagingViewModel this_message = new MessagingViewModel();
                if (message.recieving_id == UserId)
                {
                    foreach (StudentModels student in students)
                    {
                        if (student.student_account_Id == message.sending_id)
                        {
                            this_message.sender = student.lName + ", " + student.fName;
                        }
                        else if (student.student_account_Id == message.recieving_id)
                        {
                            this_message.recip = student.lName + ", " + student.fName;
                        }
                    }
                    foreach (InstructorModel instructor in instructors)
                    {
                        if (instructor.instructor_account_Id == message.sending_id)
                        {
                            this_message.sender = instructor.lName + ", " + instructor.fName;
                        }
                        else if (instructor.instructor_account_Id == message.recieving_id)
                        {
                            this_message.recip = instructor.lName + ", " + instructor.fName;
                        }
                    }

                    this_message.Message = message;
                    viewModel.Add(this_message);
                }
            }
            return(View(viewModel));
        }
コード例 #13
0
        public async void GetMessagesViewModelTest()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "InHarmonyTestLogicDB2")
                          .Options;

            using (var context = new ApplicationDbContext(options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                Repository         _repository        = new Repository(context, _logger);
                BusinessLogicClass businessLogicClass = new BusinessLogicClass(_repository, _mapperClass, _logger);
                var user = new User
                {
                    Id        = int.MaxValue,
                    UserName  = "******",
                    Password  = "******",
                    FirstName = "Johnny",
                    LastName  = "Test",
                    Email     = "*****@*****.**"
                };
                var user2 = new User
                {
                    Id        = int.MaxValue - 1,
                    UserName  = "******",
                    Password  = "******",
                    FirstName = "Johnny",
                    LastName  = "Test",
                    Email     = "*****@*****.**"
                };

                _repository.users.Add(user);
                _repository.users.Add(user2);
                context.SaveChanges();

                MessagingViewModel mvm = await businessLogicClass.GetMessagesViewModel(user.Id, user2.Id);

                Assert.NotNull(mvm);
            }
        }
コード例 #14
0
        public ActionResult Create(MessagingViewModel viewModel)
        {
            MessagingModel message = new MessagingModel();
            string         UserId  = System.Web.HttpContext.Current.User.Identity.GetUserId();

            message.subject        = viewModel.Message.subject;
            message.message        = viewModel.Message.message;
            message.recieving_id   = viewModel.Message.recieving_id;
            message.receiving_User = db.Users.Find(message.recieving_id);
            message.sending_id     = UserId;
            message.sending_User   = db.Users.Find(message.sending_id);
            message.dateSent       = DateTime.Now;
            message.read           = false;

            if (ModelState.IsValid)
            {
                db.messagingModel.Add(message);
                db.SaveChanges();
                return(RedirectToAction("Inbox"));
            }
            viewModel.recipients = new List <SelectListItem>();
            var instructors = db.instructorModel.ToList();
            var students    = db.studentModels.ToList();

            foreach (InstructorModel instructor in instructors)
            {
                viewModel.recipients.Add(new SelectListItem()
                {
                    Text = "Instructor: " + instructor.lName + ", " + instructor.fName, Value = instructor.instructor_account_Id
                });
            }
            foreach (StudentModels student in students)
            {
                viewModel.recipients.Add(new SelectListItem()
                {
                    Text = "Student: " + student.lName + ", " + student.fName, Value = student.student_account_Id
                });
            }

            return(View(viewModel));
        }
コード例 #15
0
 public IActionResult Message(MessagingViewModel message, string UserId)
 {
     if (!ModelState.IsValid)
     {
         ViewBag.LoggedIn         = _context.users.SingleOrDefault(u => u.Id == HttpContext.Session.GetString("UserId"));
         TempData["MessageError"] = "Please enter an actual message.";
         return(Redirect("/messages"));
     }
     else
     {
         Message NewMessage = new Message
         {
             MessageText = message.MessageText,
             User        = _context.users.SingleOrDefault(user => user.Id == UserId)
         };
         _context.Add(NewMessage);
         _context.SaveChanges();
         Message Created = _context.Messages.Last();
         return(Redirect("/messages"));
     }
 }
コード例 #16
0
        // GET: Messages
        public ActionResult MessagesPerPerson_messageID(int Id)
        {
            MessagingViewModel mvm = new MessagingViewModel();

            var me     = User.Identity.Name.ToUpper();
            var person = db.Messages.Where(m => m.Id == Id).Select(m => (m.fromUser + m.toUser).Replace(User.Identity.Name, "")).FirstOrDefault().ToUpper();

            person = person.Trim();
            person = person.ToUpper();

            mvm.me       = db.Users.FirstOrDefault(u => u.Email.ToUpper() == me);
            mvm.neighbor = db.Users.FirstOrDefault(u => u.Email.ToUpper() == person);

            mvm.messages = db.Messages
                           .Where(m => (m.fromUser.ToUpper() == me || m.toUser.ToUpper() == me) && (m.fromUser.ToUpper().Trim() == person || m.toUser.ToUpper().Trim() == person))
                           .OrderByDescending(m => m.timeStamp)
                           .Take(10).ToList();


            return(View("MessagesPerPerson", mvm));
        }
コード例 #17
0
        public async Task <IActionResult> Message(string id)
        {
            var playgroundReciver = await _userManager.FindByIdAsync(id);

            if (playgroundReciver == null)
            {
                return(NotFound());
            }

            var currentUser = await _userManager.GetUserAsync(User);

            var allMessages = _messageRepository.GetMessages(currentUser.Id, playgroundReciver.Id).OrderByDescending(m => m.MessageDate);

            MessagingViewModel messagingViewModel = new MessagingViewModel
            {
                CurrentPage = playgroundReciver.FullName,
                EntityId    = id,
                Messages    = allMessages
            };

            return(View(messagingViewModel));
        }
コード例 #18
0
 public IActionResult Comment(MessagingViewModel comment, string UserId, int MessageId)
 {
     if (!ModelState.IsValid)
     {
         ViewBag.LoggedIn         = _context.users.SingleOrDefault(u => u.Id == HttpContext.Session.GetString("UserId"));
         TempData["CommentError"] = "Please enter an actual comment.";
         return(Redirect("/messages"));
     }
     else
     {
         Comment NewComment = new Comment
         {
             CommentText = comment.CommentText,
             User        = _context.users.SingleOrDefault(user => user.Id == UserId),
             MessageId   = MessageId
         };
         _context.Add(NewComment);
         _context.SaveChanges();
         Comment Created = _context.Comments.Last();
         return(Redirect("/messages"));
     }
 }
コード例 #19
0
 public IActionResult Comment(MessagingViewModel Comment)
 {
     if (!ModelState.IsValid)
     {
         TempData["UserId"]    = HttpContext.Session.GetInt32("UserId");
         TempData["FirstName"] = HttpContext.Session.GetString("name");
         List <Dictionary <string, object> > AllMessages = _dbConnector.Query("SELECT messages.id, messages.message, users.first_name, users.last_name, messages.created_at FROM messages INNER JOIN users ON messages.user_id = users.id ORDER BY created_at desc");
         List <Dictionary <string, object> > AllComments = _dbConnector.Query("SELECT comments.comment, users.first_name, users.last_name, comments.id, comments.message_id, comments.created_at FROM comments INNER JOIN users ON comments.user_id = users.id");
         ViewBag.Messages = AllMessages;
         ViewBag.Comments = AllComments;
         return(View("Index"));
     }
     else
     {
         TempData["UserId"]    = HttpContext.Session.GetInt32("UserId");
         TempData["FirstName"] = HttpContext.Session.GetString("name");
         // int? id = (int)HttpContext.Session.GetInt32("id");
         int    MessageId     = Comment.UserComment.MessageId;
         string createComment = $"INSERT INTO comments (comment, user_id, message_id) VALUES ('{Comment.UserComment.Content}', {TempData["UserId"]}, {MessageId})";
         _dbConnector.Execute(createComment);
         return(RedirectToAction("Index"));
     }
 }
コード例 #20
0
 public MessagingWindowOutside(MessagingViewModel viewModel)
 {
     DataContext = viewModel;
     InitializeComponent();
 }
コード例 #21
0
 public MessagingPage(PhoneContact contact)
 {
     InitializeComponent();
     BindingContext = new MessagingViewModel(contact);
 }
コード例 #22
0
        public async Task <MessagingViewModel> GetMessagesBetween2Users(int loggedInUser, int UserToMessageId)
        {
            MessagingViewModel viewModel = await _businessLogicClass.GetMessagesViewModel(loggedInUser, UserToMessageId);

            return(viewModel);
        }