public override void CompleteObject(Cliente o, DataAccessLayer dal, bool completeRelatedObjects = true) { if (o == null) throw new ArgumentNullException("cliente"); var dao = new ClienteDal(dal); var connOpened = dal.ConnectionOpened; try { dal.OpenConnection(!connOpened); dao.CompleteObject(o); CompleteRelatedObjects(o, dal); } catch (Exception ex) { throw ex; } finally { dal.CloseConnection(!connOpened); } }