public List <UserConversationVM> _AddedUsers()
        {
            List <Conversations>      addedUsr   = new List <Conversations>();
            List <AspNetUser>         refinedUsr = new List <AspNetUser>();
            List <UserConversationVM> query      = new List <UserConversationVM>();

            string UserName    = User.Identity.Name;
            var    CurrentUser = _context.Users.Where(x => x.Email == UserName).FirstOrDefault();
            var    userId      = CurrentUser.Id;



            var results = _context.Conversations.Where(x => x.From == userId || x.To == userId).ToList();

            foreach (var item in results)
            {
                bool alreadyExists = addedUsr.Any(x => x.From == item.From && x.To == item.To);
                if (addedUsr.Count() == 0)
                {
                    addedUsr.Add(item);
                }
                else if (alreadyExists == false)
                {
                    bool alreadyExists2 = addedUsr.Any(x => x.To == item.From && x.From == item.To);
                    if (alreadyExists2 == false)
                    {
                        addedUsr.Add(item);
                    }
                }
            }
            addedUsr.ToList();


            foreach (var item in addedUsr)
            {
                var usr      = _context.Users.Where(x => x.Id != userId && (x.Id == item.From || x.Id == item.To)).FirstOrDefault();
                var Concount = _context.Conversations.Where(a => a.To == userId && a.From == usr.Id && a.IsSeen == false);
                int count    = 0;
                if (Concount != null)
                {
                    count = Concount.Count();
                }
                UserConversationVM con = new UserConversationVM();
                con.Id       = usr.Id;
                con.ImageUrl = "";           // usr.ProfilePic;
                                             //if (usr.IsLogin == null)
                                             //{
                                             //    con.IsLogin = true;
                                             //}
                                             //else
                                             //{
                                             //    con.IsLogin = (bool)usr.IsLogin;
                                             //}
                con.UserName = usr.UserName; // usr.FirstName + " " + usr.LastName;
                con.count    = count;
                query.Add(con);
            }


            //var query = from c in db.AspNetUsers
            //            where c.Id != userId && c.UserName != "admin"
            //            select new UserConversationVM
            //            {
            //                Id = c.Id,
            //                UserName = c.UserName,
            //                IsLogin = true,
            //                ImageUrl = c.ProfilePic,
            //                count = c.Conversations.Where(a => a.To == userId && a.IsSeen == false).Count()

            //            };

            //var query = from c in db.AspNetUsers
            //            where c.Id != null
            //            select new UserConversationVM
            //            {
            //                Id = c.Id,
            //                UserName = c.UserName,
            //                IsLogin = true,
            //                ImageUrl = c.ProfilePic,
            //                count = c.Conversations.Count()

            //            };
            var newQuery = query.ToList().OrderByDescending(x => x.Id);

            //  ConversationAddedUsers = newQuery.ToList();
            return(newQuery.ToList());
        }
Ejemplo n.º 2
0
        public ActionResult _AddedUsers()
        {
            List <Conversations>      addedUsr   = new List <Conversations>();
            List <Users>              refinedUsr = new List <Users>();
            List <UserConversationVM> query      = new List <UserConversationVM>();
            var userId = GetLoggedInUserId();

            using (_context = new ApplicationDbContext())
            {
                var results = _context.Conversation.Where(x => x.From == userId || x.To == userId).ToList();
                foreach (var item in results)
                {
                    bool alreadyExists = addedUsr.Any(x => x.From == item.From && x.To == item.To);
                    if (addedUsr.Count() == 0)
                    {
                        addedUsr.Add(item);
                    }
                    else if (alreadyExists == false)
                    {
                        bool alreadyExists2 = addedUsr.Any(x => x.To == item.From && x.From == item.To);
                        if (alreadyExists2 == false)
                        {
                            addedUsr.Add(item);
                        }
                    }
                }
                addedUsr.ToList();


                foreach (var item in addedUsr)
                {
                    var usr      = _context.Users.Where(x => x.Id != userId && (x.Id == item.From || x.Id == item.To)).FirstOrDefault();
                    var Concount = _context.Conversation.Where(a => a.To == userId && a.From == usr.Id && a.IsSeen == false);
                    int count    = 0;
                    if (Concount != null)
                    {
                        count = Concount.Count();
                    }
                    UserConversationVM con = new UserConversationVM();
                    con.Id       = usr.Id;
                    con.ImageUrl = usr.Photo;
                    if (usr.IsLogin == null)
                    {
                        con.IsLogin = true;
                    }
                    else
                    {
                        con.IsLogin = (bool)usr.IsLogin;
                    }
                    con.UserName = usr.FullName;
                    con.count    = count;
                    query.Add(con);
                }


                //var query = from c in db.AspNetUsers
                //            where c.Id != userId && c.UserName != "admin"
                //            select new UserConversationVM
                //            {
                //                Id = c.Id,
                //                UserName = c.UserName,
                //                IsLogin = true,
                //                ImageUrl = c.ProfilePic,
                //                count = c.Conversations.Where(a => a.To == userId && a.IsSeen == false).Count()

                //            };

                //var query = from c in db.AspNetUsers
                //            where c.Id != null
                //            select new UserConversationVM
                //            {
                //                Id = c.Id,
                //                UserName = c.UserName,
                //                IsLogin = true,
                //                ImageUrl = c.ProfilePic,
                //                count = c.Conversations.Count()

                //            };
                return(PartialView(query.ToList().OrderByDescending(x => x.Id)));
            }
        }