public void PopulateGridView() { LoadingWindow.DoWorkWithModal(progress => { this.Dispatcher.Invoke((Action) delegate { transaksiRows.Clear(); }); TransaksiService.Transaksi[] transaksiList = Services.Instance.TransaksiClient.FetchAllTransaksi(); foreach (TransaksiService.Transaksi transaksi in transaksiList) { TransaksiService.Kategori kategori = Services.Instance.TransaksiClient.FetchKategori(transaksi.IdKategori); TransaksiRow row = new TransaksiRow() { IdTransaksi = (int)transaksi.Id, NomorPolisi = transaksi.NoPolisi, TanggalMasuk = transaksi.TanggalMasuk.ToString(), JenisKendaraan = kategori.Keterangan }; bool sudahKeluar = transaksi.TanggalKeluar.HasValue; long hargaJamPertama = kategori.HargaJamPertama; long hargaPerJam = kategori.HargaPerJam; DateTime last; if (sudahKeluar) { row.TanggalKeluar = transaksi.TanggalKeluar.Value.ToString(); last = transaksi.TanggalKeluar.Value; row.Status = "Sudah Keluar"; } else { row.TanggalKeluar = "-"; last = DateTime.Now; row.Status = "Belum Keluar"; } TimeSpan difference = last - transaksi.TanggalMasuk; double hours = difference.TotalHours; int hour = difference.Hours; int minute = difference.Minutes; row.Durasi = String.Format("{0} jam {1} menit", hour, minute); hours = Math.Ceiling(hours); if (hours == 0.0) { hours = hours + 0.5; } double biaya = (hargaJamPertama) + ((hours - 1) * hargaPerJam); row.Biaya = String.Format("Rp. {0},-", biaya); this.Dispatcher.Invoke((Action) delegate { transaksiRows.Add(row); }); } }); }
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e) { TransaksiService.Transaksi transaksiData = null; foreach (TransaksiService.Transaksi transaksi in transaksiList) { if (transaksi.NoPolisi.Equals((String)cbIdTransaksi.SelectedItem, StringComparison.CurrentCultureIgnoreCase)) { transaksiData = transaksi; } } kategori = Services.Instance.TransaksiClient.FetchKategori(transaksiData.IdKategori); txNoPolisi.Text = transaksiData.NoPolisi; txKategori.Text = kategori.Keterangan; txWaktuMasuk.Text = transaksiData.TanggalMasuk.ToString(); transaksiDate = transaksiData.TanggalMasuk; transaksi = transaksiData; }