def commit(self):
        """ Commit local changes to data storage """
        user_info_list = [UserInfo.create_from_dao(user_info_dao) \
              for user_info_dao in UserInfoDAO.read_all()]
        existing_users = UserInfoList(user_info_list)
        user_info_dao = UserInfoDAO()

        #save new users
        for new_user in self.created:
            if new_user not in existing_users:
                user_info_dao.create(new_user)

        #delete users was deleted
        for bye_user in self.deleted:
            if bye_user in existing_users:
                user_info_dao.delete(bye_user.id)

        #update users
        for updated_user in self.updated:
            if updated_user in existing_users:
                user_info_dao.update(updated_user.id, updated_user)

        #clean lists
        self.created = []
        self.deleted = []
        self.updated = []
 def __init__(self):
     self.list = UserInfoDAO.read_all()