Develop a reusable library in C# language to manage phone books for users. No user interface is required, only an API to create, delete and edit phone book entries. Each entry would contain: name (first and last), type (Work, Cellphone or Home) and number. Multiple entries under the same name are allowed. The persistence format of the phone book library must be a file, (i.e. XML, JSON, Binary etc.) and is not an embedded DB (i.e. SQLite, MySQL, Excel, etc. are not allowed). In addition to creating/editing/deleting, the library also needs to support iterating over the list in alphabetical order or by the first or last name of each entry. The library should be ready for other persistence formats even though only the implementation for a file storage is currently required.
Nice-to-do: · Having unit tests in your project is a plus · Thread-safety of the library is a nice-to-have feature. · XML documentation of the API is welcome, too
NOTE: A short list of the assumptions that you made when designing/implementing the API.