Рекомендации по написанию нескольких условий if else с использованием ASP.NET с#
Я хочу написать несколько условий if else, используя лучшие практики. Вот мой код.
<pre>public class HomeController : Controller { //Creating object of Result class Result result = new Result(); // GET: Home public async Task<ActionResult> Index(string key, string value) { DBConnection dbConnection = new DBConnection(); dbConnection.MakeConnection(); try { dbConnection.oracleCommand.CommandText = "QUERY"; OracleDataReader Reader = dbConnection.oracleCommand.ExecuteReader(); Reader.Read(); count = Reader.GetInt16(0); for (int i = 0; i < count; i++) { //Updating records dbConnection.oracleCommand.CommandText = "QUERY"; dbConnection.oracleCommand.ExecuteNonQuery(); dbConnection.oracleCommand.CommandText = "QUERY"; OracleDataReader Reader2 = dbConnection.oracleCommand.ExecuteReader(); while (Reader2.Read()) { //Getting keyname and keyvalue keyName = (Reader2.GetValue(1)).ToString(); keyValue = (Reader2.GetValue(2)).ToString(); } dbConnection.oracleCommand.CommandText = "QUERY"; OracleDataReader Reader3 = dbConnection.oracleCommand.ExecuteReader(); while (Reader3.Read()) { if ((!Reader3.GetValue(1).Equals(System.DBNull.Value))) { //Checking api type if ((Reader3.GetValue(1).ToString() == ("REST"))) { dbConnection.oracleCommand.CommandText = "QUERY"; OracleDataReader Reader4 = dbConnection.oracleCommand.ExecuteReader(); while (Reader4.Read()) { if ((!Reader4.GetValue(0).Equals(System.DBNull.Value))) { //Getting url url = Reader4.GetValue(1).ToString(); //Checking whether a get or a post if ((Reader4.GetValue(0).ToString() == ("GET"))) { RestCall restCall = new RestCall(); await restCall.RunAsync(keyName, keyValue); } } else if ((Reader4.GetValue(0).ToString() == ("POST"))) { //"Do a rest call for post method."; RestCall restCall = new RestCall(); await restCall.RunAsync(keyName, keyValue); } else { //"Not a get or a post"; errorMessage = "Error"; } } } } else { //"A null value."; errorMessageNull = "A null value."; } } //Soap if ((!Reader3.GetValue(1).Equals(System.DBNull.Value))) { if ((Reader3.GetValue(1).ToString() == ("SOAP"))) { dbConnection.oracleCommand.CommandText = "QUERY"; OracleDataReader Reader4 = dbConnection.oracleCommand.ExecuteReader(); while (Reader4.Read()) { if ((!Reader4.GetValue(0).Equals(System.DBNull.Value))) { //Getting url url = Reader4.GetValue(1).ToString(); //Read function if ((Reader4.GetValue(0).ToString() == ("READ"))) { //SoapCall soapCall = new SoapCall(); //soapCall.DoSoapCall(); } } //Create function else if ((Reader4.GetValue(0).ToString() == ("CREATE"))) { //"Do a soap call for post method."; } else { //"Not a get or a post"; errorMessage = "Error"; } } } else { //"Not a get or a post"; errorMessage = "Error"; } } else { //"Not a get or a post"; errorMessage = "Error"; } Reader.Dispose(); Reader3.Dispose(); dbConnection.CloseConnection(); } } catch (Exception e) { exception = e.Message.ToString(); }
Я хочу выполнить эти запросы, если они удовлетворяют определенным условиям. После этого я хочу сделать отдых и мыльные звонки. Существует ли какой-либо метод написания этого кода без использования нескольких условий if else? Я имею в виду более читабельный способ.
Что я уже пробовал:
Другого способа у меня и в мыслях не было.