public static void Insertar(Personal personal) { Methods.GenerateLogsDebug("PersonalDal", "InsertarPersonal", string.Format("{0} Info: {1}", DateTime.Now.ToLongDateString(), "Empezando a ejecutar el metodo acceso a datos para crear un personal")); SqlCommand command = null; SqlTransaction trans = null; //Consulta para insertar datos de personal string queryString = @"INSERT INTO Personal(IdPersona, CodPersonal, FechaIngreso, Cargo, Sueldo) VALUES (@idPersona ,@codPersonal, @fechaIngreso, @cargo, @sueldo)"; SqlConnection conexion = Methods.ObtenerConexion(); try { conexion.Open(); SqlCommand usuarioInsertcmd = UsuarioDal.InsertarOUTPUT(personal.Usuario); //Inicio de Conexion a la Base de Datos trans = conexion.BeginTransaction(); usuarioInsertcmd.Connection = conexion; usuarioInsertcmd.Transaction = trans; personal.Usuario.IdUsuario = Convert.ToInt32(usuarioInsertcmd.ExecuteScalar()); Persona persona = personal; SqlCommand personaInsertcmd = PersonaDal.InsertarOUTPUT(persona); personaInsertcmd.Connection = conexion; personaInsertcmd.Transaction = trans; personal.IdPersona = Convert.ToInt32(personaInsertcmd.ExecuteScalar()); // Creacion de Personal Commando y ejecutado command = new SqlCommand(queryString); command.Parameters.AddWithValue("@idPersona", personal.IdPersona); command.Parameters.AddWithValue("@codPersonal", personal.CodPersonal); command.Parameters.AddWithValue("@fechaIngreso", personal.FechaIngreso); command.Parameters.AddWithValue("@cargo", personal.Cargo.IdCargo); command.Parameters.AddWithValue("@sueldo", personal.Sueldo); command.Connection = conexion; command.Transaction = trans; command.ExecuteNonQuery(); //Insertar telefonos foreach (Telefono telf in personal.Telefonos) { SqlCommand telfcmd = TelefonoDal.InsertarOUTPUT(telf, personal.IdPersona); telfcmd.Connection = conexion; telfcmd.Transaction = trans; telfcmd.ExecuteNonQuery(); } //Insertar direcciones foreach (Direccion direc in personal.Direcciones) { SqlCommand direccmd = DireccionDal.InsertarOUTPUT(direc, personal.IdPersona); direccmd.Connection = conexion; direccmd.Transaction = trans; direccmd.ExecuteNonQuery(); } //Insertar correos foreach (Correo correo in persona.Correos) { SqlCommand correocmd = CorreoDal.InsertarOUTPUT(correo, personal.IdPersona); correocmd.Connection = conexion; correocmd.Transaction = trans; correocmd.ExecuteNonQuery(); } trans.Commit(); } catch (SqlException ex) { trans.Rollback(); Methods.GenerateLogsRelease("PersonalDal", "InsertarPersonal", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message)); throw ex; } catch (Exception ex) { trans.Rollback(); Methods.GenerateLogsRelease("PersonalDal", "InsertarPersonal", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message)); throw ex; } finally { conexion.Close(); } Methods.GenerateLogsDebug("PersonalDal", "InsertarPersonal", string.Format("{0} {1} Info: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), "Termino de ejecutar el metodo acceso a datos para insertar un personal")); }
public static void Insertar(Cliente cliente) { Methods.GenerateLogsDebug("ClienteDal", "InsertarCliente", string.Format("{0} Info: {1}", DateTime.Now.ToLongDateString(), "Empezando a ejecutar el metodo acceso a datos para crear un Cliente")); SqlCommand command = null; SqlTransaction trans = null; //Consulta para insertar datos de Cliente string queryString = @"INSERT INTO Cliente(IdPersona, Nit, Razon, FechaRegistro) VALUES(@idPersona, @nit, @razon, @fechaRagistro)"; SqlConnection conexion = Methods.ObtenerConexion(); try { conexion.Open(); SqlCommand usuarioInsertcmd = UsuarioDal.InsertarOUTPUT(cliente.Usuario); //Inicio de Conexion a la Base de Datos trans = conexion.BeginTransaction(); usuarioInsertcmd.Connection = conexion; usuarioInsertcmd.Transaction = trans; cliente.Usuario.IdUsuario = Convert.ToInt32(usuarioInsertcmd.ExecuteScalar()); Persona persona = cliente; SqlCommand personaInsertcmd = PersonaDal.InsertarOUTPUT(persona); personaInsertcmd.Connection = conexion; personaInsertcmd.Transaction = trans; cliente.IdPersona = Convert.ToInt32(personaInsertcmd.ExecuteScalar()); // Creacion de Cliente Commando y ejecutado command = new SqlCommand(queryString); command.Parameters.AddWithValue("@idPersona", cliente.IdPersona); command.Parameters.AddWithValue("@nit", cliente.Nit); command.Parameters.AddWithValue("@razon", cliente.Razon); command.Parameters.AddWithValue("@fechaRagistro", DateTime.Now); command.Connection = conexion; command.Transaction = trans; command.ExecuteNonQuery(); //Insertar telefonos foreach (Telefono telf in cliente.Telefonos) { SqlCommand telfcmd = TelefonoDal.InsertarOUTPUT(telf, cliente.IdPersona); telfcmd.Connection = conexion; telfcmd.Transaction = trans; telfcmd.ExecuteNonQuery(); } //Insertar direcciones foreach (Direccion direc in cliente.Direcciones) { SqlCommand direccmd = DireccionDal.InsertarOUTPUT(direc, cliente.IdPersona); direccmd.Connection = conexion; direccmd.Transaction = trans; direccmd.ExecuteNonQuery(); } //Insertar correos foreach (Correo correo in persona.Correos) { SqlCommand correocmd = CorreoDal.InsertarOUTPUT(correo, cliente.IdPersona); correocmd.Connection = conexion; correocmd.Transaction = trans; correocmd.ExecuteNonQuery(); } trans.Commit(); } catch (SqlException ex) { trans.Rollback(); Methods.GenerateLogsRelease("ClienteDal", "InsertarCliente", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message)); throw ex; } catch (Exception ex) { trans.Rollback(); Methods.GenerateLogsRelease("ClienteDal", "InsertarCliente", string.Format("{0} {1} Error: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), ex.Message)); throw ex; } finally { conexion.Close(); } Methods.GenerateLogsDebug("ClienteDal", "InsertarCliente", string.Format("{0} {1} Info: {2}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), "Termino de ejecutar el metodo acceso a datos para insertar un Cliente")); }