Sarah Zakarias | 969397b | 2018-10-15 09:30:34 +0200 | [diff] [blame] | 1 | import 'dart:io'; |
| 2 | |
| 3 | import 'dart_tutorial/addressbook.pb.dart'; |
| 4 | import 'dart_tutorial/addressbook.pbenum.dart'; |
| 5 | |
Roman Kamyk | dc974d2 | 2019-09-04 10:14:20 -0700 | [diff] [blame] | 6 | /// Iterates though all people in the AddressBook and prints info about them. |
Sarah Zakarias | 969397b | 2018-10-15 09:30:34 +0200 | [diff] [blame] | 7 | void printAddressBook(AddressBook addressBook) { |
Roman Kamyk | dc974d2 | 2019-09-04 10:14:20 -0700 | [diff] [blame] | 8 | for (var person in addressBook.people) { |
Sarah Zakarias | 969397b | 2018-10-15 09:30:34 +0200 | [diff] [blame] | 9 | print('Person ID: ${person.id}'); |
| 10 | print(' Name: ${person.name}'); |
| 11 | if (person.hasEmail()) { |
| 12 | print(' E-mail address:${person.email}'); |
| 13 | } |
| 14 | |
Roman Kamyk | dc974d2 | 2019-09-04 10:14:20 -0700 | [diff] [blame] | 15 | for (var phoneNumber in person.phones) { |
Sarah Zakarias | 969397b | 2018-10-15 09:30:34 +0200 | [diff] [blame] | 16 | switch (phoneNumber.type) { |
| 17 | case Person_PhoneType.MOBILE: |
| 18 | print(' Mobile phone #: '); |
| 19 | break; |
| 20 | case Person_PhoneType.HOME: |
| 21 | print(' Home phone #: '); |
| 22 | break; |
| 23 | case Person_PhoneType.WORK: |
| 24 | print(' Work phone #: '); |
| 25 | break; |
| 26 | default: |
| 27 | print(' Unknown phone #: '); |
| 28 | break; |
| 29 | } |
| 30 | print(phoneNumber.number); |
| 31 | } |
| 32 | } |
| 33 | } |
| 34 | |
Roman Kamyk | dc974d2 | 2019-09-04 10:14:20 -0700 | [diff] [blame] | 35 | /// Reads the entire address book from a file and prints all |
| 36 | /// the information inside. |
| 37 | void main(List<String> arguments) { |
Sarah Zakarias | 969397b | 2018-10-15 09:30:34 +0200 | [diff] [blame] | 38 | if (arguments.length != 1) { |
| 39 | print('Usage: list_person ADDRESS_BOOK_FILE'); |
| 40 | exit(-1); |
| 41 | } |
| 42 | |
| 43 | // Read the existing address book. |
Roman Kamyk | dc974d2 | 2019-09-04 10:14:20 -0700 | [diff] [blame] | 44 | final file = new File(arguments.first); |
| 45 | final addressBook = new AddressBook.fromBuffer(file.readAsBytesSync()); |
Sarah Zakarias | 969397b | 2018-10-15 09:30:34 +0200 | [diff] [blame] | 46 | printAddressBook(addressBook); |
| 47 | } |