using Microsoft.AspNetCore.Mvc; using System.Linq; namespace BpsRwApp.Controllers { public class RincianTargetRumahMemilahController : AppControllerBase { public IActionResult Index() { return View(); } [HttpGet] public IActionResult Table() { var wilayahData = new[] { new WilayahRow( No: 1, Wilayah: "Jakarta Pusat", TotalJumlahPjlp: 1323, TotalTargetBulan: 1323, TotalTargetDelapanBulan: 1323, Targets: new[] { new TargetRow("Cempaka Putih", 40, 40, 40), new TargetRow("Gambir", 48, 48, 48), new TargetRow("Johar Baru", 84, 84, 84), new TargetRow("Kemayoran", 78, 78, 78), new TargetRow("Menteng", 64, 64, 64), new TargetRow("Sawah Besar", 84, 84, 84), new TargetRow("Senen", 11, 11, 11), new TargetRow("Tanah Abang", 71, 71, 71), }), new WilayahRow( No: 2, Wilayah: "Jakarta Timur", TotalJumlahPjlp: 1323, TotalTargetBulan: 1323, TotalTargetDelapanBulan: 1323, Targets: new[] { new TargetRow("Cakung", 48, 48, 48), new TargetRow("Cipayung", 78, 84, 84), new TargetRow("Ciracas", 48, 78, 78), new TargetRow("Duren Sawit", 84, 64, 64), new TargetRow("Jatinegara", 71, 84, 84), new TargetRow("Kramat Jati", 78, 11, 11), new TargetRow("Matraman", 84, 71, 71), new TargetRow("Makasar", 1323, 40, 40), }), new WilayahRow( No: 3, Wilayah: "Jakarta Barat", TotalJumlahPjlp: 1323, TotalTargetBulan: 1323, TotalTargetDelapanBulan: 1323, Targets: new[] { new TargetRow("Grogol Petamburan", 40, 40, 40), new TargetRow("Taman Sari", 48, 48, 48), new TargetRow("Palmerah", 84, 84, 84), new TargetRow("Kebon Jeruk", 78, 78, 78), new TargetRow("Cengkareng", 64, 64, 64), new TargetRow("Kembangan", 84, 84, 84), new TargetRow("Kalideres", 11, 11, 11), new TargetRow("Tambora", 71, 71, 71), }), }; var data = wilayahData .SelectMany(region => region.Targets.Select((target, index) => new { no = region.No, row_number = $"{region.No}.{index + 1}", wilayah = region.Wilayah, kelurahan = target.Kelurahan, jumlah_pjlp = target.JumlahPjlp, target_bulan = target.TargetBulan, target_8_bulan = target.TargetDelapanBulan, total_jumlah_pjlp = region.TotalJumlahPjlp, total_target_bulan = region.TotalTargetBulan, total_target_8_bulan = region.TotalTargetDelapanBulan })) .ToArray(); return Json(new { data }); } private sealed record WilayahRow(int No, string Wilayah, int TotalJumlahPjlp, int TotalTargetBulan, int TotalTargetDelapanBulan, TargetRow[] Targets); private sealed record TargetRow(string Kelurahan, int JumlahPjlp, int TargetBulan, int TargetDelapanBulan); } }