Go and Tell Missions
You have been asked to provide a program to the Go and Tell Missions Company, which will store a list of their current missionaries. The information they have is stored in a text file. Each record of the file contains the last name, first name, state the missionary resides, the age of the missionary, the years of service, and the preference for the mission field. When the application opens, the program should display all of this data in a datagridview control. The user should have the option of sorting the data in ascending order or descending order by the last name. The menu item File contains the second-level menu item Exit, which exits the application. The menu item Sort contains the two second-level menu items Ascending and Descending. The menu item Filter contains the four second-level menu items All, Europe, Middle East, South America, and North America. The menu item Search provides the user the ability to input a last name to retrieve the full record of the user selected.
[Note: You should make the first column containing the book title large enough to display the entire title of each book. To do this, set the AutoSizeColumnsMode property to “All Cells”.]
- The text file, easterndiv_missions.txt is included in your Instructions folder and should be stored in your project’s bin\debug folder.
- ****This step must be included for your assignment to be accepted. You must include three other rows in the file that include your name, your instructor’s name, and another name with the appropriate data
- Read the values of the text file into an array called missionsarray.
- Use LINQ queries to separate the lines of the text file into their own fields called Last, First, State, Age, Years of Service, Location and display these values in a datagridview control. You will find it useful to set the datasource property of the datagridview control to the results of your LINQ query.
- When the user clicks on the Sort menu, use LINQ queries to sort the array in ascending or descending order by Title and re-display your results in the same datagridview control. Make sure that only one option under the Sort menu appears checked at any given time.
- When the user clicks on the Filter menu, use LINQ queries to filter the array by Europe, Middle East, South America, North America, or All. Make sure that only one option under the Filter menu appears checked at any given time.
- When the user clicks on the Search menu, the user is prompted with an input box. The program will prompt the user for a last name. The program will utilize a try catch statement to check if the user entered a value in the input.
- Preserve the selections from the Sort and Filter menus in your results. That is, if the user has selected to Filter the list to Middle East and then clicks Sort | Descending, the datagridview control should display the list of missionaries where the preference is the Middle East, sorted in descending order.
- The form should open with the Sort | Ascending and Filter | All options set. The datagridview control should display these results as well.
- Ensure that the full title can be seen for every row.
- Include shortcuts and access keys for each menu item (such as Ctrl-X for Exit, Ctrl-A for Ascending, etc.)
As in all of your assignments, make sure that you have used appropriate programming techniques (i.e. naming of controls and variables, form has a title, internal documentation/comments are clear, formatting of any currency fields, etc.)