public async Task <ResultSpec <bool> > Update(TeacherAddUpdateModel teacherAddUpdateModel) { var today = await _dateTimeProvider.GetTodayDateTime(); var specResult = TeacherAddUpdateSpec.IsSatisfiedBy(teacherAddUpdateModel, TeacherDomainConstants.MinAgeForTeacher, TeacherDomainConstants.MaxAgeForTeacher, today); if (specResult.OverallResult) { using (var scope = new TransactionScope( TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { var teacher = _mapper.Map(teacherAddUpdateModel, new Teacher()); await _asyncTeacherRepository.Update(teacher); await _asyncTeacherRepository.Save(); scope.Complete(); return(Results.WithOkSpec(true).AddMessage(Resource.Successful)); } } else { return(Results.WithFailSpec(false).AddSpec(specResult).AddMessage(Resource.Unsuccessfull)); } }
public async Task <ResultSpec <int> > Add(TeacherAddUpdateModel teacherAddUpdateModel) { var today = await _dateTimeProvider.GetTodayDateTime(); var specResult = TeacherAddUpdateSpec.IsSatisfiedBy(teacherAddUpdateModel, 18, today); if (specResult.OverallResult) { using (var scope = new TransactionScope( TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { var teacher = _mapper.Map <Teacher>(teacherAddUpdateModel.Teacher); var newTeacherId = await _asyncTeacherRepository.Insert(teacher); await _asyncTeacherRepository.Save(); scope.Complete(); return(Results.WithOkSpec <int>(newTeacherId).AddMessage(Resource.Successful).AddSpec(new SpecificationResult())); } } else { return(Results.WithFailSpec <int>(-1).AddSpec(specResult)); } }