示例#1
0
        public async Task <StudentFullServiceModel> UpdateStudentAsync(StudentFullServiceModel student)
        {
            ValidateStudentId(student.Id);
            ValidateIfStudentIsDeleted(student.Id);
            ValidateIfInputStringIsNotNullOrEmpty(student.FirstName);
            ValidateIfInputStringIsNotNullOrEmpty(student.MiddleName);
            ValidateIfInputStringIsNotNullOrEmpty(student.LastName);

            var studentInDb = await db.Students.FindAsync(student.Id);

            studentInDb.FirstName   = student.FirstName;
            studentInDb.MiddleName  = student.MiddleName;
            studentInDb.LastName    = student.LastName;
            studentInDb.Description = student.Description;
            studentInDb.Image       = student.Image;
            studentInDb.Address     = student.Address;
            studentInDb.Email       = student.Email;
            studentInDb.Phone       = student.Phone;
            await db.SaveChangesAsync();

            var studentInDbUpdated = await db.Students
                                     .Include(x => x.Class)
                                     .Include(x => x.Marks)
                                     .Include(x => x.Notes)
                                     .Include(x => x.Parents)
                                     .ThenInclude(studentParent => studentParent.Parent)
                                     .Include(x => x.Clubs)
                                     .ThenInclude(clubStudent => clubStudent.Club)
                                     .FirstOrDefaultAsync(x => x.Id == student.Id);

            return(this.mapper.Map <StudentFullServiceModel>(studentInDbUpdated));
        }
示例#2
0
        public async Task <StudentFullServiceModel> CreateStudentAsync(StudentFullServiceModel student)
        {
            ValidateIfInputStringIsNotNullOrEmpty(student.FirstName);
            ValidateIfInputStringIsNotNullOrEmpty(student.MiddleName);
            ValidateIfInputStringIsNotNullOrEmpty(student.LastName);
            ValidateIfInputStringIsNotNullOrEmpty(student.Email);
            ValidateIfInputStringIsNotNullOrEmpty(student.Phone);
            ValidateIfInputStringIsNotNullOrEmpty(student.Address);
            ValidateIfDateIsNotNull(student.DateBirth);

            Class classOfThisStudent = await this.db.Classes.FirstOrDefaultAsync(x => x.Id == student.Class.Id);

            Student studentToAddInDb = new Student
            {
                FirstName             = student.FirstName,
                MiddleName            = student.MiddleName,
                LastName              = student.LastName,
                IsBanned              = false,
                IsDeleted             = false,
                Class                 = classOfThisStudent,
                ClassId               = classOfThisStudent.Id,
                Status                = (EnumStatusStudent)Enum.Parse(typeof(EnumStatusStudent), student.Status),
                IsSchoolCouncilMember = student.IsSchoolCouncilMember,
                Address               = student.Address,
                Email                 = student.Email,
                Phone                 = student.Phone,
                DateBirth             = student.DateBirth,
                Description           = student.Description,
                Gender                = (EnumGender)Enum.Parse(typeof(EnumGender), student.Gender),
                Image                 = student.Image,
                NumberInClass         = student.NumberInClass,
            };

            await SetDefaultImagePathIfImagePathIsNull(studentToAddInDb);
            await SetDefaultDescriptionIfDescriptionIsNull(studentToAddInDb);

            await this.db.Students.AddAsync(studentToAddInDb);

            await db.SaveChangesAsync();

            Student studentAddedInDb = await this.db.Students.FirstOrDefaultAsync(x => x.FirstName == student.FirstName && x.MiddleName == student.MiddleName && x.LastName == student.LastName);

            return(this.mapper.Map <StudentFullServiceModel>(studentAddedInDb));
        }
示例#3
0
        public async Task <IActionResult> Post([FromBody] StudentFullServiceModel student)
        {
            var studentCreated = await this.studentService.CreateStudentAsync(student);

            return(Ok(studentCreated));
        }