示例#1
0
        protected void Students_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridViewRow row         = (GridViewRow)this.Students.Rows[e.RowIndex];
            TextBox     idContainer = (TextBox)row.Cells[0].Controls[0];
            TextBox     markValue   = (TextBox)row.Cells[4].Controls[0];
            double      value;

            if (double.TryParse(markValue.Text, out value))
            {
                var markDTO = new AddMarkDTO()
                {
                    StudentId = idContainer.Text, Value = value
                };
                var teacherId = Context.User.Identity.GetUserId();

                var ev = new AddMarksEventArgs(teacherId, markDTO);
                this.InsertMarks?.Invoke(sender, ev);

                if (this.Model.IsSuccess)
                {
                    this.Message.ShowSuccess("Mark added.");
                    this.Classes_SelectedIndexChanged(sender, e);
                }
                else
                {
                    this.Message.ShowError(this.Model.ErrorMessage);
                }
            }
        }
        private void View_InsertMarks(object sender, AddMarksEventArgs e)
        {
            var teacher = this.teacherService.FindById(e.TeacherId);
            var subject = teacher.Subject;

            try
            {
                var markToAdd = markFactory.CreateMark(e.Mark.StudentId, subject, e.Mark.Value);
                this.markService.Add(markToAdd);
            }
            catch (ArgumentException ex)
            {
                this.View.Model.ErrorMessage = ex.Message;
                this.View.Model.IsSuccess    = false;
                return;
            }

            try
            {
                this.markService.Save();
            }
            catch (Exception)
            {
                this.View.Model.ErrorMessage = "Something`s wrong!";
                this.View.Model.IsSuccess    = false;
                return;
            }

            this.View.Model.IsSuccess = true;
        }