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)); } }
public async Task Kabul_edilen_yas_araligi_disinda_ogretmen_kaydedildiginde_result_fail_donmeli(int age) { //Arrange dateTimeProviderMock.Setup(t => t.GetTodayDateTime()) .ReturnsAsync(() => new DateTime(2020, 01, 01)); var today = dateTimeProviderMock.Object.GetTodayDateTime(); // TODO : sadece ilgilendiğimiz parametreleri doldursak olmazmıydı var teacherBlDto = new TeacherBlDto { BirthDate = new DateTime(today.Result.Year - age, 01, 01), FirstName = "Murat", LastName = "Çabuk", Gender = "Male", }; var teacher = new Teacher { BirthDate = new DateTime(2003, 01, 01), FirstName = "Murat", LastName = "Çabuk", Gender = "Male", }; mapperMock.Setup(t => t.Map <Teacher>(teacherBlDto)).Returns(teacher); asyncTeacherRespositoryMock.Setup(t => t.Insert(teacher)); sutTeacherManager = new TeacherManager(asyncTeacherRespositoryMock.Object, mapperMock.Object, dateTimeProviderMock.Object, cacheMock.Object); var teacherAddUpdateModel = new TeacherAddUpdateModel { Teacher = teacherBlDto }; //Act var result = await sutTeacherManager.Add(teacherAddUpdateModel); var count = result.SpecResult.FailedSpecifications.ToFilteredSpecs(nameof(TeacherBlDto.BirthDate)).Count; //Assert Assert.True(count > 0); // TODO : şu şekilde yapsaydık olmazmıydı // Assert.False(result.IsOk); }
public async Task <IActionResult> AddUpdate(TeacherAddUpdateViewModel teacherAddUpdateViewModel) { var genders = await _optionManager.GetGenders(); var teacherBlDto = _mapper.Map <TeacherBlDto>(teacherAddUpdateViewModel.Teacher); var teacherAddUpdateModel = new TeacherAddUpdateModel { Teacher = teacherBlDto }; var result = await _teacherManager.Add(teacherAddUpdateModel); ModelState.FromSpec(result.SpecResult.FailedSpecifications); teacherAddUpdateViewModel.Teacher.Id = result.Data; teacherAddUpdateViewModel.Message = result.Message; teacherAddUpdateViewModel.Genders = genders; return(View(teacherAddUpdateViewModel)); }