public IActionResult KelolaDataDiri(KelolaDataDiriModel model)
 {
     if (!ModelState.IsValid)
     {
         TempData["Pesan"] = "Data tidak valid";
         return(RedirectToAction(nameof(KelolaDataDiri)));
     }
     else
     {
         string namaLengkap   = model.NamaLengkap;
         string noPendaftaran = User.Identity.Name;
         var    newData       = new DataDiri()
         {
             Agama           = model.Agama,
             Alamat          = model.Alamat,
             AnakKe          = model.AnakKe,
             BeratBadan      = model.BeratBadan,
             CitaCita        = model.CitaCita,
             DusunDesaLurah  = model.DusunDesaLurah,
             Email           = model.Email,
             GolDarah        = model.GolDarah,
             Hobi            = model.Hobi,
             IsPerempuan     = model.IsPerempuan,
             JumlahSaudara   = model.JumlahSaudara,
             Kecamatan       = model.Kecamatan,
             KelainanJasmani = model.KelainanJasmani,
             KodePos         = model.KodePos,
             KotaKabupaten   = model.KotaKabupaten,
             NamaPanggilan   = model.NamaPanggilan,
             NoHp            = model.NoHp,
             NoTelp          = model.NoTelp,
             RiwayatSakit    = model.RiwayatSakit,
             Rt = model.Rt,
             Rw = model.Rw,
             StatusDalamKeluarga = model.StatusDalamKeluarga,
             TanggalLahir        = model.TanggalLahir,
             TempatLahir         = model.TempatLahir,
             TinggiBadan         = model.TinggiBadan
         };
         _calonSiswaService.SaveDataDiri(noPendaftaran, namaLengkap, newData);
         TempData["Pesan"] = "Data berhasil disimpan";
         return(RedirectToAction(nameof(Biodata)));
     }
 }
        public void SaveDataDiri(string noPendaftaran, string namaLengkap, DataDiri newData)
        {
            newData.CalonSiswaId = GetCalonSiswaId(noPendaftaran);
            bool   isExist = CekExist(newData.CalonSiswaId, "DataDiri");
            string sqlQuery;

            if (!isExist)
            {
                sqlQuery = @"INSERT INTO DataDiri(CalonSiswaId, NamaPanggilan, IsPerempuan, TempatLahir, TanggalLahir, Alamat, Agama, Rt, Rw, Dusun_Desa_Lurah, Kecamatan, Kota_Kabupaten, KodePos, NoTelp, NoHp, Email, JumlahSaudara, AnakKe, StatusDalamKeluarga, TinggiBadan, BeratBadan, GolDarah, CitaCita, Hobi, RiwayatSakit, KelainanJasmani) 
                    VALUES(@CalonSiswaId, @NamaPanggilan, @IsPerempuan, @TempatLahir, @TanggalLahir, @Alamat, @Agama, @Rt, @Rw, @DusunDesaLurah, @Kecamatan, @KotaKabupaten, @KodePos, @NoTelp, @NoHp, @Email, @JumlahSaudara, @AnakKe, @StatusDalamKeluarga, @TinggiBadan, @BeratBadan, @GolDarah, @CitaCita, @Hobi, @RiwayatSakit, @KelainanJasmani)";
            }
            else
            {
                sqlQuery = @"UPDATE DataDiri
                    SET CalonSiswaId = @CalonSiswaId, NamaPanggilan = @NamaPanggilan, IsPerempuan = @IsPerempuan, TempatLahir = @TempatLahir, TanggalLahir = @TanggalLahir, Alamat = @Alamat, Agama = @Agama, Rt = @Rt, Rw = @Rw, Dusun_Desa_Lurah = @DusunDesaLurah, Kecamatan = @Kecamatan, Kota_Kabupaten = @KotaKabupaten, KodePos = @KodePos,
                    NoTelp = @NoTelp, NoHp = @NoHp, Email = @Email, JumlahSaudara = @JumlahSaudara, AnakKe = @AnakKe, StatusDalamKeluarga = @StatusDalamKeluarga, TinggiBadan = @TinggiBadan, BeratBadan = @BeratBadan, GolDarah = @GolDarah, CitaCita = @CitaCita, Hobi = @Hobi, RiwayatSakit = @RiwayatSakit, KelainanJasmani = @KelainanJasmani
                    WHERE CalonSiswaId = @CalonSiswaId";
            }
            string sqlUpdateNamaLengkap = @"UPDATE CalonSiswa SET NamaLengkap = @NamaLengkap WHERE Id = @CalonSiswaId";

            using (var connection = new SqlConnection(_connectionHelper.GetConnectionString()))
            {
                connection.Open();
                using (var trans = connection.BeginTransaction())
                {
                    try
                    {
                        connection.Execute(sql: sqlQuery, param: newData, transaction: trans);
                        connection.Execute(sql: sqlUpdateNamaLengkap, param: new { NamaLengkap = namaLengkap, CalonSiswaId = newData.CalonSiswaId }, transaction: trans);
                        trans.Commit();
                    }
                    catch (Exception)
                    {
                        trans.Rollback();
                        throw;
                    }
                }
            }
        }