Esempio n. 1
0
        public void NewAddress_InsertOrUpdate_Persisted()
        {
            var detail = new StudentDetailModel()
            {
                Name    = "Jane Doe",
                Address = new AddressDetailModel()
                {
                    City    = "Brno",
                    Country = "Jihomoravsky-kraj",
                    State   = "Czechia",
                    Street  = "Bozetechova 2",
                },
                Grade   = new GradeMapper().MapListModel(Seed.GradeJane),
                Courses = new List <StudentCourseListModel>()
                {
                    new()
                    {
                        CourseId = Seed.IcsCourse.Id,
                        Name     = Seed.IcsCourse.Name,
                    }
                }
            };

            detail = _facadeSUT.Save(detail);

            Assert.NotEqual(Guid.Empty, detail.Id);

            var entityFromDb = _repository.GetById(detail.Id);

            Assert.Equal(detail, _mapper.Map(entityFromDb));
        }
        /// <summary>
        ///     Crea la lista de los alumnos que deben asistir a
        ///     clases.
        /// </summary>
        /// <param name="schoolClassIds">
        ///     array de ids de las clases.
        /// </param>
        /// <returns>
        ///     Retorna una lista de objetos SchoolClassStudent que pueden
        ///     contener objetos Absence en caso de que no sea la primera
        ///     vez que el profesor hace la peticion
        /// </returns>
        public async Task <List <SchoolClassStudent> > Get(int[] schoolClassIds)
        {
            List <SchoolClassStudent> callList = new List <SchoolClassStudent>();

            foreach (int id in schoolClassIds)
            {
                //Alumnos que deben ir a cada clase
                List <StudentEntity> studentEntities = await _studentRepository
                                                       .GetByCurrentSchoolClass(id);

                foreach (StudentEntity s in studentEntities)
                {
                    //Para cada alumno de la lista, se mira si ya ha sido marcado como
                    //ausente de la misma clase, en tal caso se instancia un objeto Absence dentro del objeto
                    //SchoolClassStudent para que el profesor no tenga que volver a marcar
                    //a los ausentes cuando recibe la lista

                    AbsenceEntity absenceEntity = await _absenceRepository
                                                  .GetByStudentAndSchoolClass(s.Id, id);

                    Absence absence = AbsenceMapper.Map(absenceEntity);

                    callList.Add(new SchoolClassStudent
                    {
                        SchoolClassId = id,
                        Absence       = absence,
                        Student       = StudentMapper.Map(s)
                    });
                }
            }

            ;
            return(callList);
        }