Example #1
0
        public static List<ExamView> FromExamList(ScheduleRepository _repo, List<Exam> list)
        {
            var result = new List<ExamView>();

            string consAud;
            string examAud;

            foreach (var exam in list)
            {
                var disc = _repo.GetFirstFiltredDisciplines(d => d.DisciplineId == exam.DisciplineId);

                if (exam.ConsultationAuditoriumId != 0)
                {
                    consAud = _repo.GetAuditorium(exam.ConsultationAuditoriumId).Name;
                }
                else
                {
                    consAud = "";
                }

                if (exam.ExamAuditoriumId != 0)
                {
                    examAud = _repo.GetAuditorium(exam.ExamAuditoriumId).Name;
                }
                else
                {
                    examAud = "";
                }

                result.Add(new ExamView()
                {
                    ExamId = exam.ExamId,
                    ConsultationAuditorium = consAud,
                    ConsultationDateTime = exam.ConsultationDateTime,
                    DisciplineName = disc.Name,
                    ExamAuditorium = examAud,
                    ExamDateTime = exam.ExamDateTime,
                    GroupName = disc.StudentGroup.Name
                });
            }

            return result;
        }
        public void RemoveSyncWithSchedule(ScheduleRepository _sRepo)
        {
            var examDiscs = _sRepo
                .GetFiltredDisciplines(d => d.Attestation == 2 || d.Attestation == 3)
                .ToList();

            var examDiscIds = GetAllExams()
                .Select(e => e.DisciplineId)
                .ToList();

            var examsToRemove = new List<int>();

            foreach (var exam in GetAllExams())
            {
                var disc = _sRepo.GetFirstFiltredDisciplines(d => d.DisciplineId == exam.DisciplineId);

                if (disc == null || !(disc.Attestation == 2 || disc.Attestation == 3))
                {
                    examsToRemove.Add(exam.ExamId);
                }
            }

            foreach (var examId in examsToRemove)
            {
                var logIds = GetAllLogEvents()
                    .Where(le => (le.OldExam != null && le.OldExam.ExamId == examId) || (le.NewExam != null && le.NewExam.ExamId == examId))
                    .Select(le => le.LogEventId)
                    .ToList();

                foreach (var logId in logIds)
                {
                    RemoveLogEvent(logId);
                }

                RemoveExam(examId);
            }
        }