Ana Sayfa / Blog Yazılarım / Siteye giren kullanıcı sayısını gösterme

Siteye giren kullanıcı sayısını gösterme

  • BugraSoft
  • 23.12.2023
  • 0 Yorum
  • 145 Görüntülenme

Merhaba, bugün sitenizi ziyaret eden kullanıcıları veri tabanında saklayıp nasıl istatistiğe çevireceğinizi anlatacağım.


İlk Önce Controller'ımıza gidip şu kodları yazıyoruz.


string ipAddress = Request.UserHostAddress;

            DateTime currentDate = DateTime.Now;

            // Aynı kullanıcı için aynı gün içinde kayıt var mı kontrol et

            bool isDuplicate = db.VisitorLogs.Any(v => v.IPAddress == ipAddress && v.VisitDate == currentDate.Date);

if (!isDuplicate)

            {

// Aynı Kullanıcı için aynı gün içinde kayıt yoksa kaydet

                VisitorLog newVisitorLog = new VisitorLog

                {

                    IPAddress = ipAddress,

                    VisitDate = currentDate,

                    Day = currentDate.Day,

                    Month = currentDate.Month,

                    Year = currentDate.Year

                };

                db.VisitorLogs.Add(newVisitorLog);

                db.SaveChanges();

            }

  // Günlük ziyaretçi sayısını al

            var dailyVisitorCounts = db.VisitorLogs

                .Where(v => v.Day == currentDate.Day && v.Month == currentDate.Month && v.Year == currentDate.Year)

                .Count();

 

            // Aylık ziyaretçi sayısını al

            var monthlyVisitorCounts = db.VisitorLogs

                .Where(v => v.Month == currentDate.Month && v.Year == currentDate.Year)

                .GroupBy(v => v.Day)

                .Select(g => new

                {

                    Day = g.Key,

                    Count = g.Count()

                })

                .ToList();

 

            // Yıllık ziyaretçi sayısını al

            var yearlyVisitorCounts = db.VisitorLogs

                .Where(v => v.Year == currentDate.Year)

                .GroupBy(v => new { v.Month, v.Day })

                .Select(g => new

                {

                    Month = g.Key.Month,

                    Day = g.Key.Day,

                    Count = g.Count()

                })

                .ToList();
 db.SaveChanges();

ViewBag.GunSayi = dailyVisitorCounts;

ViewBag.AySayi = monthlyVisitorCounts;
ViewBag.YilSayi = yearlyVisitorCounts;



Daha sonra ise View'ımıza gidip bu sayıları grafik şeklinde görüntülüyoruz.

       

 <canvas id="myChart2" width="600" height="300"></canvas>

        <script>

    document.addEventListener("DOMContentLoaded"function () {

        var ctx = document.getElementById("myChart2").getContext("2d");

        var dailyCount = @Html.Raw(Json.Encode(ViewBag.GunSayi));

        var monthlyCount = @Html.Raw(Json.Encode(ViewBag.AySayi));

        var yearlyCount = @Html.Raw(Json.Encode(ViewBag.YilSayi));

        var chart = new Chart(ctx, {

            type: "bar",

            data: {

                labels: ["Günlük""Aylık""Yıllık"],

                datasets: [{

                    label: "Toplam Sayılar",

                    data: [dailyCount, monthlyCount, yearlyCount],

                    backgroundColor: [

                        "rgba(255, 99, 132, 0.2)",

                        "rgba(54, 162, 235, 0.2)",

                        "rgba(255, 206, 86, 0.2)"                    ],

                    borderColor: [

                        "rgba(255, 99, 132, 1)",

                        "rgba(54, 162, 235, 1)",

                        "rgba(255, 206, 86, 1)"

                    ],

                    borderWidth: 1

                }]

            },

            options: {

                responsive: true,

                maintainAspectRatio: false,

                scales: {

                    y: {

                        beginAtZero: true

                    }

                }

            }

        });

    });

        </script>





Veee bu kadar basit. Başka blog yazılarımda görüşmek üzere...

Yorumlar

henüz yorum bulunamadı

Yorum Yap