Example #1
0
 /// <summary>
 ///
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="definition"></param>
 /// <param name="parameter"></param>
 /// <returns></returns>
 public static T Execute <T>(this ICommandDefinition definition, T parameter = null)
     where T : class
 {
     using (var connection = new SqlConnection(definition.ConnectionString)) {
         using (var command = definition.GetCommand()) {
             command.Connection = connection;
             connection.Open();
             try {
                 ParameterMethods.SetInputs(parameter, command);
                 command.ExecuteNonQuery();
                 ParameterMethods.SetOutputs(parameter, command);
             }
             catch (SqlException sqlEx) when(sqlEx.ShouldTryReexecute())
             {
                 if (command.IsCommandBuilt())
                 {
                     parameter = definition.Execute(parameter);
                 }
                 else
                 {
                     throw sqlEx;
                 }
             }
             catch {
                 throw;
             }
         }
     }
     return(parameter);
 }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="parameter"></param>
 /// <param name="definition"></param>
 /// <returns></returns>
 public static T Execute <T>(this T parameter, ICommandDefinition definition) where T : class => definition.Execute(parameter);
Example #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="definition"></param>
 /// <param name="parameter"></param>
 /// <returns></returns>
 public static Dynamic Execute(this ICommandDefinition definition, Dynamic parameter = null) => definition.Execute <Dynamic>(parameter);