/// <summary> /// Metodo empleado para insertar el registro Cliente especificado en el parametro de entrada /// Abarca una transaccion creando tambien el registro del objeto Domicilio asociado /// </summary> /// <param name="cliente">Objeto Cliente que se desea almacenar</param> /// <returns></returns> public int insertarCliente(Cliente cliente) { SqlCommand cmd = new SqlCommand("PACK_CLIENTES.PR_CLIENTES_A", getConexion()); cmd.CommandType = System.Data.CommandType.StoredProcedure; try { SqlParameter paramId = cmd.Parameters.Add("@p_id_cliente", SqlDbType.Int, 4); paramId.Direction = ParameterDirection.Output; cmd.Parameters.AddWithValue("@p_nombre", cliente.Nombre); cmd.Parameters.AddWithValue("@p_apellido", cliente.Apellido); cmd.Parameters.AddWithValue("@p_nro_documento", cliente.NroDocumento); cmd.Parameters.AddWithValue("@p_id_tipo_documento", cliente.TipoDocumento.IdTipoDocumento); cmd.Parameters.AddWithValue("@p_telefono", cliente.Telefono); cmd.Parameters.AddWithValue("@p_id_domicilio", cliente.Domicilio.IdDomicilio); cmd.Parameters.AddWithValue("@p_e_mail", cliente.EMail); cmd.Parameters.AddWithValue("@p_id_usuario", cliente.Usuario.IdUsuario); //Comenzamos la transaccion de Insertar un Cliente con su Domicilio cmd.Connection.BeginTransaction(); //Almacenamos el objeto Domicilio del Cliente en la base de datos DomicilioDAL domicilioDAL = new DomicilioDAL(); domicilioDAL.insertarDomicilio(cliente.Domicilio); //Almacenamos el objeto Cliente cmd.ExecuteNonQuery(); //Realizamos un Commit de la Transaccion y luego cerramos la conexion cmd.Transaction.Commit(); cmd.Connection.Close(); return(Convert.ToInt16(paramId.Value)); } catch (Exception e) { cmd.Transaction.Rollback(); cmd.Connection.Close(); throw e; } }
/// <summary> /// Metodo empleado para modificar el registro CLiente especificado en el parametro de entrada /// </summary> /// <param name="cliente">Objeto Cliente con los nuevos datos que se desean modificar</param> /// <returns></returns> public bool modificarCliente(Cliente cliente) { SqlCommand cmd = new SqlCommand("PACK_CLIENTES.PR_CLIENTES_M"); cmd.CommandType = CommandType.StoredProcedure; try { cmd.Parameters.AddWithValue("@id_cliente", cliente.Nombre); cmd.Parameters.AddWithValue("@nombre", cliente.Nombre); cmd.Parameters.AddWithValue("@apellido", cliente.Apellido); cmd.Parameters.AddWithValue("@nro_documento", cliente.NroDocumento); cmd.Parameters.AddWithValue("@id_tipo_documento", cliente.TipoDocumento.IdTipoDocumento); cmd.Parameters.AddWithValue("@telefono", cliente.Telefono); cmd.Parameters.AddWithValue("@id_domicilio", cliente.Domicilio.IdDomicilio); cmd.Parameters.AddWithValue("@e_mail", cliente.EMail); cmd.Parameters.AddWithValue("@id_usuario", cliente.Usuario.IdUsuario); //Comenzamos la transaccion que incluye la modificacion del cliente y de su objeto domicilio en caso que corresponda cmd.Connection.BeginTransaction(); //Modificamos el registro domicilio en caso de haber recibido modificaciones DomicilioDAL domicilioDAL = new DomicilioDAL(); domicilioDAL.modificarDomicilio(cliente.Domicilio); cmd.ExecuteNonQuery(); cmd.Transaction.Commit(); cmd.Connection.Close(); return(true); } catch (Exception e) { cmd.Transaction.Rollback(); cmd.Connection.Close(); throw e; } }
/// <summary> /// Metodo que permite obtener el objeto de la clase Domicilio especificado en el parametro de entrada /// </summary> /// <param name="idDomicilio"></param> /// <returns>Objeto Domicilio</returns> public static Domicilio getDomicilioPorID(int idDomicilio) { DomicilioDAL domicilioDAL = new DomicilioDAL(); return(domicilioDAL.getDomicilioPorID(idDomicilio)); }