public async Task <ParentFullServiceModel> UpdateParentAsync(ParentFullServiceModel parent) { ValidateParentId(parent.Id); ValidateIfParentIsDeleted(parent.Id); ValidateIfInputStringIsNotNullOrEmpty(parent.FirstName); ValidateIfInputStringIsNotNullOrEmpty(parent.MiddleName); ValidateIfInputStringIsNotNullOrEmpty(parent.LastName); var parentInDb = await db.Parents.FindAsync(parent.Id); parentInDb.FirstName = parent.FirstName; parentInDb.MiddleName = parent.MiddleName; parentInDb.LastName = parent.LastName; parentInDb.Description = parent.Description; parentInDb.Image = parent.Image; parentInDb.Address = parent.Address; parentInDb.Email = parent.Email; parentInDb.Phone = parent.Phone; await db.SaveChangesAsync(); var parentInDbUpdated = await db.Parents .Include(x => x.Students) .ThenInclude(studentParent => studentParent.Student) .FirstOrDefaultAsync(p => p.Id == parent.Id); return(this.mapper.Map <ParentFullServiceModel>(parentInDbUpdated)); }
public async Task <ParentFullServiceModel> CreateParentAsync(ParentFullServiceModel parent) { ValidateIfInputStringIsNotNullOrEmpty(parent.FirstName); ValidateIfInputStringIsNotNullOrEmpty(parent.MiddleName); ValidateIfInputStringIsNotNullOrEmpty(parent.LastName); ValidateIfInputStringIsNotNullOrEmpty(parent.Email); ValidateIfInputStringIsNotNullOrEmpty(parent.Phone); ValidateIfInputStringIsNotNullOrEmpty(parent.Address); ValidateIfDateIsNotNull(parent.DateBirth); Parent parentToAddInDb = this.mapper.Map <Parent>(parent); await SetDefaultImagePathIfImagePathIsNull(parentToAddInDb); await SetDefaultDescriptionIfDescriptionIsNull(parentToAddInDb); await this.db.Parents.AddAsync(parentToAddInDb); await db.SaveChangesAsync(); Parent parentAddedInDb = await this.db.Parents.FirstOrDefaultAsync(x => x.FirstName == parent.FirstName && x.MiddleName == parent.MiddleName && x.LastName == parent.LastName); return(this.mapper.Map <ParentFullServiceModel>(parentAddedInDb)); }
public async Task <IActionResult> Post([FromBody] ParentFullServiceModel parent) { var parentCreated = await this.parentService.CreateParentAsync(parent); return(Ok(parentCreated)); }