私の機能は、予約リクエストがあるときに顧客データを保存しています。2つの条件があります:顧客データがまだ入力されていない場合でも予約を強制的に保存するか、顧客データが完了した状態で予約を保存します。
ユーザーが新しい顧客データを作成するかどうかを確認するために、プログラムがこの顧客が存在しないことを検出した場合に備えて、try catch を実行してユーザーに例外を発生させます。はいの場合は新しいフォームを開き、そうでない場合はプログラムを強制的に保存します。
プログラムを強制的に保存する中で、他の例外が存在する場合はそれをキャッチしたいと考えています。
現在、私はこのようにしています。
try
{
booking = new Booking();
booking.RoomID = roomID;
booking.Tel = txtTel.Text;
booking.PersonalID = txtId.Text;
booking.Name = txtBookBy.Text;
booking.CheckinDate = dtpCheckin.Value;
booking.CheckoutDate = dtpCheckin.Value.AddDays(Convert.ToDouble(cbNight.SelectedItem));
mng.SaveBooking(booking, false);
if (MessageBox.Show("Data is saved") == DialogResult.OK)
{
this.Close();
}
}
catch (NewCustomerException ex)
{
DialogResult dialog = MessageBox.Show("Customer doesn't exist in database. Do you want to create new customer?", "Please confirm", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
String param = txtBookBy.Text + "," + txtTel.Text + "," + txtId.Text;
CustomerForm oForm = new CustomerForm(param);
oForm.Show();
}
else if (dialog == DialogResult.No)
{
try
{
mng.SaveBooking(booking, true);
}
catch (Exception ex1)
{
MessageBox.Show(ex1.Message);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}