Example #1
0
 /*-----------------------------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();
         
     }
     
 }
Example #2
0
        /// <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)
            {
                
            }
        }
Example #3
0
        /// <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;
        }