For this assignment, you are going to use the given .NET project and develop a GUI-driven task
management application. If you are using Windows, you can use either UWP o
Xamarin.Forms. The application has the following menu options for the user:
1. Create a new task
2. Delete an existing task
3. Edit an existing task
4. Complete a task
5. List all outstanding (not complete) tasks
6. List all tasks
The application should contain Task class with the following public properties:
Your application must have ALL 8 of the following features implemented:
1. Paging - When the user requests more than 5 tasks by asking for a list of outstanding o
overall tasks, present those as a paged list with five results per page. Remember: you
can use the ListNavigato
T> class for this requirement
2. Calendar Appointments - Calendar Appointments should be implemented as a special
case of a task and placed in the same central list for storage using polymorphism. The
Appointment class should have the following properties. Shared properties should be
implemented on a base class called Item from which both Task and Appointment derive.
a. (string) Name
. (string) Description
c. (DateTime) Start
d. (DateTime) Stop
e. (List) Attendees
3. Calendar Appointments CRUD - The menus should be modified such that calenda
appointments are returned when the user asks for their tasks and the user should clearly
e able to determine if an Item instance is a Task or an Appointment (Note: you can use
ides here). You should also add prompts that allow creation and update
of Tasks and Appointments. Deletions should be handled the same for both derived
4. Search - Add a new menu item that asks the user for a search string and returns only
items in the items list that contain that search string in their name, description, or list of
attendees (for Appointments). Use LINQ to satisfy this requirement most easily.
5. The application must have a GUI and cannot be a console application.
6. The application must have serialization/deserialization implemented through a save/load
feature to save the task list and load a task list through additional menu buttons (To
make this requirement simpler, you can allow the user to specify a name for saving and
a name for loading and save/load files from a hardcoded directory within the user's
7. The Item class must incorporate a property called "Priority"
8. Items of either type (Appointment or Task) should prominently display the priority to the
user, and the user should be able to sort their task list by priority.
Remember: You can modify and use any of the project code provided to suit your needs to
complete this assignment. The layout of your application is 100% up to you. Once completed,
screen-record a demo video to show that your program compiles and functions co
demonstrate the implemented features. Thank you.