示例#1
0
        public void Add()
        {
            ValidationErrors = null;

            var duplicates = new List <string>();

            foreach (var studentId in SelectedStudents)
            {
                var student = StudentsList.FirstOrDefault(_ => _.Id == studentId);

                foreach (var courseInstanceIds in SelectedCourseInstances)
                {
                    var courseInstance = CourseInstancesList.FirstOrDefault(_ => _.Value.SemesterId == courseInstanceIds.SemesterId &&
                                                                            _.Value.CourseId == courseInstanceIds.CourseId);

                    if (NewEnrolments.Any(_ => _.Student.Id == student.Id &&
                                          _.Semester.Id == courseInstance.Semester.Id &&
                                          _.Course.Id == courseInstance.Course.Id))
                    {
                        duplicates.Add(string.Format($"{student.UserFriendly} - {courseInstance.UserFriendly}"));
                        continue;
                    }

                    NewEnrolments.Add(new EnrolmentCreateListModel
                    {
                        Student   = student,
                        Course    = courseInstance.Course,
                        Semester  = courseInstance.Semester,
                        Enrolment = new EnrolmentCreate
                        {
                            StudentId      = student.Id,
                            CourseInstance = new CourseInstanceBase
                            {
                                CourseId   = courseInstance.Course.Id,
                                SemesterId = courseInstance.Semester.Id
                            }
                        }
                    });
                }
            }

            if (duplicates.Any())
            {
                ValidationErrors = new List <string>
                {
                    "Duplikati :"
                };

                duplicates.ForEach(_ => ValidationErrors.Add(_));

                ValidationErrors.Add("nisu dodani ponovno.");
            }
        }
示例#2
0
        public async Task ForceSave()
        {
            ValidationErrors = null;
            try
            {
                await _enrolmentService.UpdateAndCreate(NewEnrolments.Select(_ => _.Enrolment).ToList());

                Context.RedirectToRoute("Enrolments");
            }
            catch (ValidationPropertyException vpe)
            {
                ValidationErrors = vpe.ErrorsList.ToList();
            }
            catch (ValidationException ve)
            {
                ValidationErrors = ve.Errors.ToList();
            }
        }
示例#3
0
        public async Task ForceSave()
        {
            ValidationErrors = null;
            try
            {
                await _enrolmentService.UpdateAndCreate(NewEnrolments.Select(_ => _.Enrolment).ToList());

                Enrolments.RequestRefresh();
                NewEnrolments = null;
                CreateMode    = false;
                Enrolments.RowEditOptions.EditRowId = null;
            }
            catch (ValidationPropertyException vpe)
            {
                ValidationErrors = vpe.ErrorsList.ToList();
            }
            catch (ValidationException ve)
            {
                ValidationErrors = ve.Errors.ToList();
            }
        }
示例#4
0
 public void Remove(EnrolmentCreateListModel item)
 {
     var removed = NewEnrolments.Remove(item);
 }