public async Task EditParent_WithInCorrectId_ShouldReturnNullRef() { this.SeedTestData(this.DbContext); ParentServiceModel parentToEdit = this.DbContext.Parents.First().To <ParentServiceModel>(); int id = 100; await Assert.ThrowsAsync <ArgumentNullException>( () => this.ParentssServiceMock.Edit(id, parentToEdit)); }
public async Task DeleteParent_ShouldDeleteParent() { this.SeedTestData(this.DbContext); ParentServiceModel parentToDelete = this.DbContext.Parents.First().To <ParentServiceModel>(); var result = await this.ParentssServiceMock.Delete(parentToDelete.Id); Assert.True( result = true, "ParentsService Edit() not works properly!"); }
public async Task <bool> Create(ClaimsPrincipal userIdentity, ParentServiceModel parentServiceModel) { if (parentServiceModel == null) { throw new ArgumentNullException(nameof(parentServiceModel)); } var userId = this.userManager.GetUserId(userIdentity); var parent = parentServiceModel.To <Parent>(); parent.UserId = userId; await this.parentsRepository.AddAsync(parent); var result = await this.parentsRepository.SaveChangesAsync(); return(result > 0); }
public async Task Edit_ShouldEditParent() { this.SeedTestData(this.DbContext); ParentServiceModel parentToEdit = this.DbContext.Parents.First().To <ParentServiceModel>(); parentToEdit.PhoneNumber = "00000000"; var result = await this.ParentssServiceMock.Edit(parentToEdit.Id, parentToEdit); ParentServiceModel editedParent = this.DbContext.Parents.First().To <ParentServiceModel>(); Assert.True( result = true, "ParentsService Edit() not works properly!"); Assert.True( editedParent.PhoneNumber == "00000000", "ParentsService Edit() not works properly!"); }
public async Task GetParentById_WithCorrectInputData_ShouldReturnParent() { this.SeedTestData(this.DbContext); ParentServiceModel expected = this.DbContext.Parents.First().To <ParentServiceModel>(); ParentServiceModel actual = await this.ParentssServiceMock.GetParentById(expected.Id); Assert.True( expected.FirstName == actual.FirstName, "ParentsService GetParentById() not works properly!"); Assert.True( expected.MiddleName == actual.MiddleName, "ParentsService GetParentById() not works properly!"); Assert.True( expected.LastName == actual.LastName, "ParentsService GetParentById() not works properly!"); Assert.True( expected.UCN == actual.UCN, "ParentsService GetParentById() not works properly!"); }
public async Task <bool> Edit(int id, ParentServiceModel parentServiceModel) { Parent parentToEdit = await this.parentsRepository.All() .FirstOrDefaultAsync(p => p.Id == id); if (parentToEdit == null) { throw new ArgumentNullException(string.Format(GlobalConstants.NullReferenceParentId, id)); } parentToEdit.FirstName = parentServiceModel.FirstName; parentToEdit.MiddleName = parentServiceModel.MiddleName; parentToEdit.LastName = parentServiceModel.LastName; parentToEdit.PhoneNumber = parentServiceModel.PhoneNumber; parentToEdit.WorkName = parentServiceModel.WorkName; parentToEdit.WorkDistrictId = parentServiceModel.WorkDistrictId; parentToEdit.UCN = parentToEdit.UCN; parentToEdit.Role = parentToEdit.Role; var addressToEdit = (await this.parentsRepository.All() .SingleOrDefaultAsync(a => a.AddressId == parentServiceModel.AddressId)).Address; addressToEdit.PermanentDistrictId = parentServiceModel.Address.PermanentDistrictId; addressToEdit.CurrentDistrictId = parentServiceModel.Address.CurrentDistrictId; addressToEdit.CurrentCity = parentServiceModel.Address.CurrentCity; addressToEdit.PermanentCity = parentServiceModel.Address.PermanentCity; addressToEdit.Current = parentServiceModel.Address.Current; addressToEdit.Permanent = parentServiceModel.Address.Permanent; var addressResult = await this.addressesService.UpdateRepository(addressToEdit); this.parentsRepository.Update(parentToEdit); var result = await this.parentsRepository.SaveChangesAsync(); return(result > 0); }
public async Task <IActionResult> Create(CreateParentInputModel input) { if (!this.ModelState.IsValid) { var allParentsRole = new List <string>() { "Майка", "Баща" }; this.ViewData["ParentsRole"] = allParentsRole; var allDistricts = this.districtsService.GetAllDistricts(); this.ViewData["Districts"] = allDistricts.Select(d => new CreateParentDistrictViewModel { Name = d.Name }).ToList(); var allCityNames = new List <string>() { "София", "Друг" }; this.ViewData["CityNames"] = allCityNames; return(this.View(input)); } if (input.AddressCurrentDistrictName == null) { input.AddressCurrentDistrictName = input.AddressPermanentDistrictName; } if (input.AddressCurrent == null) { input.AddressCurrent = input.AddressPermanent; } AddressDetailsServiceModel address = new AddressDetailsServiceModel { Permanent = input.AddressPermanent, Current = input.AddressCurrent, CurrentCity = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity), CurrentDistrict = await this.districtsService.GetDistrictByName(input.AddressCurrentDistrictName), PermanentCity = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity), PermanentDistrict = await this.districtsService.GetDistrictByName(input.AddressPermanentDistrictName), }; DistrictServiceModel workDistrict = await this.districtsService.GetDistrictByName(input.WorkDistrictName); ClaimsPrincipal userIdentity = this.User; ParentServiceModel parent = input.To <ParentServiceModel>(); parent.WorkDistrict = workDistrict; parent.Address = address; var role = await this.parentsService.GetParentsRoleByUser(userIdentity); if ((role == ParentRole.Майка.ToString() || role == ParentRole.Баща.ToString()) && input.ParentRole == role) { return(this.BadRequest(GlobalConstants.UniqueParentRole)); } parent.Role = (ParentRole)Enum.Parse(typeof(ParentRole), input.ParentRole); await this.parentsService.Create(userIdentity, parent); return(this.Redirect("/")); }
public async Task <IActionResult> Edit(int id, EditParentInputModel input) { if (!this.ModelState.IsValid) { var allParentsRole = new List <string>() { "Майка", "Баща" }; this.ViewData["ParentsRole"] = allParentsRole; var allDistricts = this.districtsService.GetAllDistricts(); this.ViewData["Districts"] = allDistricts.Select(d => new CreateParentDistrictViewModel { Name = d.Name }).ToList(); var allCityNames = new List <string>() { "София", "Друг" }; this.ViewData["CityNames"] = allCityNames; return(this.View(input)); } ParentServiceModel parentToEdit = await this.parentsService.GetParentById(id); var addressId = parentToEdit.AddressId; AddressDetailsServiceModel address = await this.addressesService.GetAddressDetailsById(addressId); address.Permanent = input.AddressPermanent; address.Current = input.AddressCurrent; address.CurrentCity = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity); address.CurrentDistrict = await this.districtsService.GetDistrictByName(input.AddressCurrentDistrictName); address.CurrentDistrictId = address.CurrentDistrict.Id; address.PermanentCity = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity); address.PermanentDistrict = await this.districtsService.GetDistrictByName(input.AddressPermanentDistrictName); address.PermanentDistrictId = address.PermanentDistrict.Id; DistrictServiceModel workDistrict = await this.districtsService.GetDistrictByName(input.WorkDistrictName); ClaimsPrincipal userIdentity = this.User; parentToEdit.FirstName = input.FirstName; parentToEdit.MiddleName = input.MiddleName; parentToEdit.LastName = input.LastName; parentToEdit.PhoneNumber = input.PhoneNumber; parentToEdit.WorkName = input.WorkName; parentToEdit.WorkDistrictId = workDistrict.Id; parentToEdit.Address = address; parentToEdit.Role = (ParentRole)Enum.Parse(typeof(ParentRole), input.ParentRole); await this.parentsService.Edit(id, parentToEdit); var candidatesOfParents = this.candidatesService.GetCandidatesOfParent(userIdentity, id).ToList(); foreach (var candidate in candidatesOfParents) { await this.calculatorService.EditBasicScoresByCriteria(candidate.Id); } return(this.Redirect("/")); }
public async Task <IActionResult> Create(CreateCandidateInputModel input) { if (!this.ModelState.IsValid) { var motherFullName = await this.parentsService .GetParentFullNameByRole(this.User, ParentRole.Майка); var motherList = new List <string> { $"{motherFullName}", ParentRole.Друг.ToString(), ParentRole.Няма.ToString(), }; var fatherFullName = await this.parentsService .GetParentFullNameByRole(this.User, ParentRole.Баща); var fatherList = new List <string> { $"{fatherFullName}", ParentRole.Друг.ToString(), ParentRole.Няма.ToString(), }; this.ViewData["Mother"] = motherList; this.ViewData["Father"] = fatherList; return(this.View(input)); } ClaimsPrincipal userIdentity = this.User; var parents = this.parentsService.GetParentsWithOtherAndNull(userIdentity); ParentServiceModel motherServiceModel = await parents.Where(p => p.FullName.TrimEnd().Equals(input.MotherFullName)).FirstOrDefaultAsync(); ParentServiceModel fatherServiceModel = await parents.Where(p => p.FullName.TrimEnd().Equals(input.FatherFullName)).FirstOrDefaultAsync(); CandidateServiceModel model = input.To <CandidateServiceModel>(); model.MotherId = motherServiceModel.Id; model.FatherId = fatherServiceModel.Id; await this.candidatesService.Create(userIdentity, model); var candidatesOfMother = this.candidatesService.GetCandidatesOfParent(userIdentity, model.MotherId).ToList(); var candidatesOfFather = this.candidatesService.GetCandidatesOfParent(userIdentity, model.FatherId).ToList(); if (candidatesOfFather.Count >= GlobalConstants.ChildrenInFamily) { foreach (var candidate in candidatesOfFather) { await this.calculatorService.EditBasicScoresByCriteria(candidate.Id); } } if (candidatesOfMother.Count >= GlobalConstants.ChildrenInFamily) { foreach (var candidate in candidatesOfMother) { await this.calculatorService.EditBasicScoresByCriteria(candidate.Id); } } return(this.Redirect("/")); }