/*-----------------------------POPULATING FUNCTIONS-----------------------------*/ /// <summary> /// set Year for which the subjects and grades are supposeed to be displayed /// </summary> /// <param name="sender">Chosen ComboBox element</param> /// <param name="e"></param> private async void listYearSelected(object sender, EventArgs e) { ComboBox cmb = (ComboBox)sender; var selectedIndex = (int)cmb.SelectedIndex; var item= (YearListItem)cmb.SelectedItem; if (item.Clickable) { selectedYear = await years.GetOne(item.Id); selectedYearListItem = new YearListItem(item.ToString(), item.Id, item.Clickable, item.Owned); UpdateMainForm(); } }
/// <summary> /// Deletes a currently selected Year. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void btnDeleteYear_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("Are you sure you want to delete the currently selected year?", "Delete a Year", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { await years.DeleteOne(selectedYear); selectedYearListItem = null; UpdateMainForm(); //exception after removing a year we move to next existing } else if (dialogResult == DialogResult.No) { } }
/// <summary> /// Updates the list of years. /// </summary> /// <returns>Returns Collection of years.</returns> private async Task<ICollection<YearsViewModel>> UpdateYearList(){ currentUser = await users.GetUser(username); listYear.Items.Clear(); listYear.Sorted = false; //get list of years for user var yearsList = await years.GetYears(username); //Get groups from groupDetails var groupDetailsList = await groupDetails.GetGroupDetailsForUser(currentUser.id); if ((yearsList != null && yearsList.Count != 0) || (groupDetailsList != null && groupDetailsList.Count != 0)) { //If it is not a visitor display all years from usr and groups otherwise // otherwise display only years form a group it is being visited from if (!visiting) { listYear.Items.Add(new YearListItem("Users Years")); // populate with current user years foreach (var year in yearsList) { YearListItem item = new YearListItem(year.name, year.id); listYear.Items.Add(item); } var userGroups = currentUser.Groups; foreach (var group in userGroups) { var groupYears = group.Years; if (groupYears != null && groupYears.Count != 0) { //adding a separator with a name of the group listYear.Items.Add(new YearListItem(group.name)); //listYear.Items.Add(); foreach (var year in groupYears) { YearListItem item; if (group.owner_id == currentUser.id) item = new YearListItem(year.name, year.id, true, true); else item = new YearListItem(year.name, year.id, true, false); listYear.Items.Add(item); } } } } //else: for displaying only years from common group else { var groupYears = await years.GetYearsOfGroup(visitorGroupId); foreach (var year in groupYears) { listYear.Items.Add(new YearListItem(year.name, year.id, true, false)); } } //Check if the form is being visited if (visiting) { btnAddSubject.Enabled = false; btnDeleteYear.Enabled = false; btnEditYear.Enabled = false; btnAddYear.Enabled = false; } else { //check If a year is displayed by an Owner if (selectedYearListItem != null) { if (selectedYearListItem.Owned) { btnAddSubject.Enabled = true; btnDeleteYear.Enabled = true; btnEditYear.Enabled = true; } else { btnAddSubject.Enabled = false; btnDeleteYear.Enabled = false; btnEditYear.Enabled = false; } } } if (selectedYearListItem != null) { listYear.SelectedIndex = listYear.Items.IndexOf(selectedYearListItem); //listYear.Text = selectedYear.name; } else { listYear.SelectedIndex = 0; } } else { btnAddSubject.Enabled = false; btnDeleteYear.Enabled = false; btnEditYear.Enabled = false; if (visiting) { btnAddYear.Enabled = false; } } return yearsList; }