public void FillDataView(Assignment[] assgns = null, DataGridView dgv = null, bool sendToMain = true)
        {
            Assignment[] assignmentsToUse;
            DataGridView relevantDataGridView;

            relevantDataGridView = dgv is null ? DataGridView : DataGridViewCurved;
            relevantDataGridView.Rows.Clear();
            if (assgns is null)
            {
                _schoolClass.LoadAssignments();
                _assignments     = _schoolClass.assignments;
                assignmentsToUse = _assignments;
            }
            else
            {
                assignmentsToUse = assgns;
            }

            //code has been unspaghettied
            if (assignmentsToUse is null)
            {
                return;
            }
            foreach (Main.DataRow dataRow in _main.DataRows)
            {
                dataRow.SetDataToEmpty();
            }
            foreach (Assignment assgn in assignmentsToUse)
            {
                relevantDataGridView.Rows.Add(assgn.ToDataView(_schoolClass));
                if (sendToMain)
                {
                    _main.AssgnToDataRow(assgn);
                }
            }

            string arg1, arg2;
            bool   arg3;

            (arg1, arg2, arg3) = _schoolClass.GetMeanGrade(_main.DataRows, assignmentsToUse);
            _main.DisplayMean(arg1, arg2, arg3);
            _main.CalculateGrade();
        }