using System; using System.Collections.Generic; using System.Linq; namespace BankSampahApp.Controllers.ReduksiSampah { internal static class ReduksiSampahDataStore { private static readonly IReadOnlyList Items = new List { new() { Id = 1, PeriodeBulan = "Jan 2025", NamaLokasi = "Jakarta Pusat", JenisLokasi = "Maggot", BeratReduksi = 8, BeratSampah = 15, Alamat = AddressBlock("Tanah Abang", "Cideng", "002", "001") }, new() { Id = 2, PeriodeBulan = "Feb 2025", NamaLokasi = "Jakarta Barat", JenisLokasi = "Maggot", BeratReduksi = 10, BeratSampah = 20, Alamat = AddressBlock("Palmerah", "Kemanggisan", "003", "004") }, new() { Id = 3, PeriodeBulan = "Mar 2025", NamaLokasi = "Jakarta Selatan", JenisLokasi = "Maggot", BeratReduksi = 7, BeratSampah = 14, Alamat = AddressBlock("Tebet", "Manggarai", "001", "002") }, new() { Id = 4, PeriodeBulan = "Apr 2025", NamaLokasi = "Jakarta Timur", JenisLokasi = "Maggot", BeratReduksi = 6, BeratSampah = 12, Alamat = AddressBlock("Cakung", "Jatinegara", "004", "006") }, new() { Id = 5, PeriodeBulan = "Mei 2025", NamaLokasi = "Jakarta Utara", JenisLokasi = "Maggot", BeratReduksi = 9, BeratSampah = 16, Alamat = AddressBlock("Koja", "Lagoa", "005", "003") }, new() { Id = 6, PeriodeBulan = "Jun 2025", NamaLokasi = "Depok", JenisLokasi = "Komposting", BeratReduksi = 11, BeratSampah = 18, Alamat = AddressBlock("Beji", "Beji Timur", "006", "002") }, new() { Id = 7, PeriodeBulan = "Jul 2025", NamaLokasi = "Bekasi", JenisLokasi = "Komposting", BeratReduksi = 13, BeratSampah = 21, Alamat = AddressBlock("Bekasi Timur", "Margahayu", "009", "005") }, new() { Id = 8, PeriodeBulan = "Agu 2025", NamaLokasi = "Bogor", JenisLokasi = "Komposting", BeratReduksi = 9, BeratSampah = 15, Alamat = AddressBlock("Bogor Utara", "Kedunghalang", "001", "004") }, new() { Id = 9, PeriodeBulan = "Sep 2025", NamaLokasi = "Tangerang", JenisLokasi = "Komposting", BeratReduksi = 8, BeratSampah = 13, Alamat = AddressBlock("Karawaci", "Nusa Jaya", "008", "003") }, new() { Id = 10, PeriodeBulan = "Okt 2025", NamaLokasi = "Cilegon", JenisLokasi = "Komposting", BeratReduksi = 12, BeratSampah = 19, Alamat = AddressBlock("Ciwandan", "Kebonsari", "010", "002") } }; private const string ActionButtons = @"
"; private const string ProofButton = @""; public static IEnumerable GetItems(string jenisLokasi) => Items.Where(item => string.Equals(item.JenisLokasi, jenisLokasi, StringComparison.OrdinalIgnoreCase)); public static bool MatchesBulan(ReduksiSampahItem item, string? bulan) { if (string.IsNullOrWhiteSpace(bulan)) { return true; } return item.PeriodeBulan.Contains(bulan.Trim(), StringComparison.OrdinalIgnoreCase); } public static object ToResponse(ReduksiSampahItem item) => new { id = item.Id, periode_bulan = item.PeriodeBulan, nama_lokasi = item.NamaLokasi, alamat = item.Alamat, jenis_lokasi = item.JenisLokasi, berat_reduksi = item.BeratReduksi, berat_sampah = item.BeratSampah, gambar = ProofButton, aksi = ActionButtons }; private static string AddressBlock(string kecamatan, string kelurahan, string rt, string rw) { return $@"
{kecamatan}
{kelurahan} RT {rt} RW {rw}
"; } public class ReduksiSampahItem { public int Id { get; set; } public string PeriodeBulan { get; set; } = string.Empty; public string NamaLokasi { get; set; } = string.Empty; public string Alamat { get; set; } = string.Empty; public string JenisLokasi { get; set; } = string.Empty; public double BeratReduksi { get; set; } public double BeratSampah { get; set; } } } }