public IActionResult YollayanDeneme(int id)
        {
            string tempId = HttpContext.Session.GetString("id");
            int    userId = int.Parse(tempId);                      //yollayanId
            //List<MessageGetAllModel> messageGetAllModels = new List<MessageGetAllModel>();
            var messages = _messageService.GetByYollayanId(userId); // message service tarafından çalıştırıldı.

            #region Profosyonel Mesajlasma
            // algorithm kaç farklı yollayan kullanıcı sayısını belirler.
            List <int> yollayanlarIdKumesi = new List <int>();

            foreach (var item in messages)
            {
                if (!(yollayanlarIdKumesi.Any(y => y == item.AlanId)))
                {
                    yollayanlarIdKumesi.Add(item.AlanId);
                }
            }

            List <TestModel> testModels = new List <TestModel>();


            foreach (var idd in yollayanlarIdKumesi)
            {
                List <MessageGetAllModel> kullanıcıMesajlari = new List <MessageGetAllModel>();
                string userName = String.Empty;
                foreach (var mesaj in messages)
                {
                    if (mesaj.AlanId == idd)
                    {
                        MessageGetAllModel messageGetAllModel = new MessageGetAllModel();
                        var alanKullanıcı     = _userService.GetById(mesaj.AlanId);
                        var yollayanKullanıcı = _userService.GetById(mesaj.YollayanId);
                        messageGetAllModel.Alan       = alanKullanıcı;
                        messageGetAllModel.Yollayan   = yollayanKullanıcı;
                        messageGetAllModel.AlanId     = mesaj.AlanId;
                        messageGetAllModel.YollayanId = mesaj.YollayanId;
                        messageGetAllModel.Message    = mesaj.Mesaj;
                        messageGetAllModel.MessageId  = mesaj.Id;
                        messageGetAllModel.Time       = mesaj.MesajTarihi;
                        messageGetAllModel.UserName   = alanKullanıcı.UserName;
                        kullanıcıMesajlari.Add(messageGetAllModel);
                    }
                }
                testModels.Add(new TestModel()
                {
                    MesajBox = kullanıcıMesajlari
                });
            }


            // test models eleman sayısı farklı kullanıcıların sayısına baglıdır.
            List <TestModel> tmodels = new List <TestModel>();

            foreach (var item in testModels) //testModels kaç farklı kullanıcının olduğunun tespit, eder.
            {
                foreach (var i in item.MesajBox)
                {
                    if (id == i.AlanId)
                    {
                        tmodels.Add(item);
                        break; // istenilen kullanıcı bulundugu takdirde döngü sonlanır ve yollayan kullanıcıya ait tüm mesajlar gelir.
                    }
                }
            }

            #endregion
            return(View(tmodels));
        }
        public IActionResult GetAllByAlanId()
        {
            if (!(Convert.ToBoolean(HttpContext.Session.GetString("Active"))))
            {
                return(RedirectToAction("Login", "IO"));
            }

            string tempId = HttpContext.Session.GetString("id");
            int    userId = int.Parse(tempId);                                               //yollayanId
            List <MessageGetAllModel> messageGetAllModels = new List <MessageGetAllModel>(); // normal mesajlasmanın ihtiyac duyulur silinebilir.
            var messages = _fakeMessageService.GetByAlanId(userId);                          // fakeservice tarafından çalıştırıldı.



            #region Profosyonel Mesajlasma
            // algorithm kaç farklı yollayan kullanıcı sayısını belirler.
            List <int> yollayanlarIdKumesi = new List <int>();

            foreach (var item in messages)
            {
                if (!(yollayanlarIdKumesi.Any(y => y == item.YollayanId)))
                {
                    yollayanlarIdKumesi.Add(item.YollayanId);
                }
            }

            List <TestModel> testModels = new List <TestModel>();


            foreach (var id in yollayanlarIdKumesi)
            {
                List <MessageGetAllModel> kullanıcıMesajlari = new List <MessageGetAllModel>();
                string userName = String.Empty;
                foreach (var mesaj in messages)
                {
                    if (mesaj.YollayanId == id)
                    {
                        MessageGetAllModel messageGetAllModel = new MessageGetAllModel();
                        var alanKullanıcı     = _userService.GetById(mesaj.AlanId);
                        var yollayanKullanıcı = _userService.GetById(mesaj.YollayanId);
                        messageGetAllModel.Alan       = alanKullanıcı;
                        messageGetAllModel.Yollayan   = yollayanKullanıcı;
                        messageGetAllModel.AlanId     = mesaj.AlanId;
                        messageGetAllModel.YollayanId = mesaj.YollayanId;
                        messageGetAllModel.Message    = mesaj.Mesaj;
                        messageGetAllModel.MessageId  = mesaj.Id;
                        messageGetAllModel.Time       = mesaj.MesajTarihi;
                        messageGetAllModel.UserName   = yollayanKullanıcı.UserName;
                        kullanıcıMesajlari.Add(messageGetAllModel);
                    }
                }
                testModels.Add(new TestModel()
                {
                    MesajBox = kullanıcıMesajlari
                });
            }


            // test models eleman sayısı farklı kullanıcıların sayısına baglıdır.

            #endregion



            #region Normal Mesajlasma

            // normal mesajlasma
            foreach (var item in messages)
            {
                MessageGetAllModel messageGetAllModel = new MessageGetAllModel();
                var alanKullanıcı     = _userService.GetById(item.AlanId);
                var yollayanKullanıcı = _userService.GetById(item.YollayanId);
                messageGetAllModel.Alan       = alanKullanıcı;
                messageGetAllModel.Yollayan   = yollayanKullanıcı;
                messageGetAllModel.AlanId     = item.AlanId;
                messageGetAllModel.YollayanId = item.YollayanId;
                messageGetAllModel.Message    = item.Mesaj;
                messageGetAllModel.MessageId  = item.Id;
                messageGetAllModel.Time       = item.MesajTarihi;
                messageGetAllModels.Add(messageGetAllModel);
            }

            #endregion Normal Mesajlasma

            return(View(testModels)); // profosyonel mesajlasmadaki tests model kullanilir.
        }
        public IActionResult GetAllByYollayanId()
        {
            if (!(Convert.ToBoolean(HttpContext.Session.GetString("Active"))))
            {
                return(RedirectToAction("Login", "IO"));
            }

            string tempId = HttpContext.Session.GetString("id");
            int    userId = int.Parse(tempId);                                               //yollayanId
            List <MessageGetAllModel> messageGetAllModels = new List <MessageGetAllModel>(); // silinebilir.
            var messages = _messageService.GetByYollayanId(userId);

            foreach (var item in messages)
            {
                MessageGetAllModel messageGetAllModel = new MessageGetAllModel();
                var alanKullanıcı     = _userService.GetById(item.AlanId);
                var yollayanKullanıcı = _userService.GetById(item.YollayanId);
                messageGetAllModel.Alan       = alanKullanıcı;
                messageGetAllModel.Yollayan   = yollayanKullanıcı;
                messageGetAllModel.AlanId     = item.AlanId;
                messageGetAllModel.YollayanId = item.YollayanId;
                messageGetAllModel.Message    = item.Mesaj;
                messageGetAllModel.MessageId  = item.Id;
                messageGetAllModel.Time       = item.MesajTarihi;
                messageGetAllModels.Add(messageGetAllModel); // buda yapılabilir , eğer olmazsa.
            }

            #region Profosyonel Mesajlasma
            // algorithm kaç farklı yollayan kullanıcı sayısını belirler.
            List <int> yollayanlarIdKumesi = new List <int>();

            foreach (var item in messages)
            {
                if (!(yollayanlarIdKumesi.Any(y => y == item.AlanId)))
                {
                    yollayanlarIdKumesi.Add(item.AlanId); // yollayanlarda alana , alanlarda yollayan idlere bakılır, çünkü farklılık bunlarda oluşur.
                }
            }

            List <TestModel> testModels = new List <TestModel>();


            foreach (var id in yollayanlarIdKumesi)
            {
                List <MessageGetAllModel> kullanıcıMesajlari = new List <MessageGetAllModel>();
                string userName = String.Empty;
                foreach (var mesaj in messages)
                {
                    if (mesaj.AlanId == id)
                    {
                        MessageGetAllModel messageGetAllModel = new MessageGetAllModel();
                        var alanKullanıcı     = _userService.GetById(mesaj.AlanId);
                        var yollayanKullanıcı = _userService.GetById(mesaj.YollayanId);
                        messageGetAllModel.Alan       = alanKullanıcı;
                        messageGetAllModel.Yollayan   = yollayanKullanıcı;
                        messageGetAllModel.AlanId     = mesaj.AlanId;
                        messageGetAllModel.YollayanId = mesaj.YollayanId;
                        messageGetAllModel.Message    = mesaj.Mesaj;
                        messageGetAllModel.MessageId  = mesaj.Id;
                        messageGetAllModel.Time       = mesaj.MesajTarihi;
                        messageGetAllModel.UserName   = alanKullanıcı.UserName;
                        kullanıcıMesajlari.Add(messageGetAllModel);
                    }
                }
                testModels.Add(new TestModel()
                {
                    MesajBox = kullanıcıMesajlari
                });
            }


            // test models eleman sayısı farklı kullanıcıların sayısına baglıdır.

            #endregion


            return(View(testModels));
        }