bps-rw/Controllers/DataRwController.cs

95 lines
3.9 KiB
C#

using Microsoft.AspNetCore.Mvc;
namespace BpsRwApp.Controllers
{
[Route("/[controller]/[action]")]
public class DataRwController : AppControllerBase
{
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult Table()
{
var data = Enumerable.Range(1, 50)
.Select(index =>
{
var wilayah = ControllerSampleData.WilayahSeeds[(index - 1) % ControllerSampleData.WilayahSeeds.Length];
var namaPendamping = ControllerSampleData.PersonNames[(index - 1) % ControllerSampleData.PersonNames.Length];
var rw = index.ToString("D3");
var kota = $"{wilayah.Kelurahan}, {wilayah.Kecamatan}, {wilayah.Kota}";
var checklist = 20 + (index * 7 % 80);
var jumlahFoto = 5;
var jumlahRumah = 500 + (index * 13 % 500);
var jumlahRumahMemilah = jumlahRumah - (50 + index % 30);
var persentaseRumahMemilah = Math.Round((double)jumlahRumahMemilah / jumlahRumah * 100);
var jumlahRumahNasabah = jumlahRumahMemilah - (10 + index % 20);
var jumlahBankSampah = jumlahRumahMemilah - (10 + index % 20);
return new
{
rw,
kota,
nama_pendamping = namaPendamping,
checklist,
jumlah_foto = jumlahFoto,
jumlah_rumah = jumlahRumah,
jumlah_rumah_memilah = jumlahRumahMemilah,
persentase_rumah_memilah = $"{persentaseRumahMemilah}%",
jumlah_rumah_nasabah = jumlahRumahNasabah,
jumlah_bank_sampah = jumlahBankSampah,
aksi = BuildActionButton(
rw,
kota,
namaPendamping,
checklist,
jumlahFoto,
jumlahRumah,
jumlahRumahMemilah,
persentaseRumahMemilah,
jumlahRumahNasabah,
jumlahBankSampah)
};
})
.ToArray();
var response = new
{
data = data
};
return Json(response);
static string BuildActionButton(
string rw,
string kota,
string namaPendamping,
int checklist,
int jumlahFoto,
int jumlahRumah,
int jumlahRumahMemilah,
double persentaseRumahMemilih,
int jumlahRumahNasabah,
int jumlahBankSampah)
{
return "<div class=\"flex gap-2\">" +
$"<button type=\"button\" class=\"btn bg-white rounded-full btn-xs btn-view-detail\" " +
$"data-rw=\"{rw}\" " +
$"data-kota=\"{kota}\" " +
$"data-nama-pendamping=\"{namaPendamping}\" " +
$"data-checklist=\"{checklist}\" " +
$"data-jumlah-foto=\"{jumlahFoto}\" " +
$"data-jumlah-rumah=\"{jumlahRumah}\" " +
$"data-jumlah-rumah-memilah=\"{jumlahRumahMemilah}\" " +
$"data-persentase-rumah-memilah=\"{persentaseRumahMemilih}\" " +
$"data-jumlah-rumah-nasabah=\"{jumlahRumahNasabah}\" " +
$"data-jumlah-bank-sampah=\"{jumlahBankSampah}\">" +
"Detail" +
"</button>" +
"</div>";
}
}
}
}