public ModuleWithModuleGradingDto AddNewModuleWithModuleGrading(ModuleWithModuleGradingDto dto) { if (CheckIfModuleExists(dto.Module.Name)) { return(null); } Module module = _mapper.Map <Module>(dto.Module); _moduleRepository.Add(module); _moduleRepository.Save(); List <ModuleGrading> moduleGradings = new List <ModuleGrading>(); for (int i = 0; i < dto.ModuleGradings.Count; i++) { if (CheckIfModuleGradingExists(dto.ModuleGradings[i].Name, module.Id)) { continue; } ModuleGrading moduleGrading = new ModuleGrading { Name = dto.ModuleGradings[i].Name, Weight = dto.ModuleGradings[i].Weight, ModuleId = module.Id }; moduleGradings.Add(moduleGrading); _moduleGradingRepository.Add(moduleGrading); } _moduleGradingRepository.Save(); return(GetModuleWithModuleGradingsByModuleId(module.Id)); }
public void PostTest() { var newModuleWithModuleGrading = new ModuleWithModuleGradingDto { Module = new ModuleDto { Id = 4, Name = "Module 4 Test" }, ModuleGradings = new List <ModuleGradingDto> { new ModuleGradingDto { Id = 8, Name = "Quiz Test", Weight = 1f, ModuleId = 4 } } }; _mockModuleModuleGradingsService.Setup(x => x.AddNewModuleWithModuleGrading(It.IsAny <ModuleWithModuleGradingDto>())).Returns(newModuleWithModuleGrading); var moduleWithModuleGradings = _moduleController.Post(newModuleWithModuleGrading) as ObjectResult; var result = moduleWithModuleGradings.Value as ModuleWithModuleGradingDto; Assert.AreEqual(moduleWithModuleGradings.StatusCode, (int)HttpStatusCode.Created); Assert.AreEqual(newModuleWithModuleGrading.Module.Name, result.Module.Name); Assert.AreEqual(newModuleWithModuleGrading.ModuleGradings.Count, result.ModuleGradings.Count); Assert.AreEqual(newModuleWithModuleGrading.ModuleGradings[0].Name, result.ModuleGradings[0].Name); Assert.AreEqual(newModuleWithModuleGrading.ModuleGradings[0].ModuleId, result.Module.Id); }
public IActionResult Post([FromBody] ModuleWithModuleGradingDto dto) { var moduleWithGrading = _moduleModuleGradingsService.AddNewModuleWithModuleGrading(dto); if (moduleWithGrading == null) { return(BadRequest("Module already exists")); } return(CreatedAtAction(nameof(Get), new { id = moduleWithGrading.Module.Id }, moduleWithGrading)); }
public ModuleWithModuleGradingDto UpdateModuleWithModuleGrading(int id, ModuleWithModuleGradingDto dto) { Module module = _moduleRepository.GetModuleWithModuleGradingsByModuleId(id); if (module == null) { throw new NotFoundException("Module not found"); } module.Name = dto.Module.Name; foreach (var item in dto.ModuleGradings) { var moduleGrading = module.ModuleGradings.FirstOrDefault(x => x.Id == item.Id); if (moduleGrading != null) { moduleGrading.Name = item.Name; moduleGrading.Weight = item.Weight; } // new ModuleGrading if (item.Id == 0 && CheckIfModuleGradingExists(item.Name, module.Id) == false) { module.ModuleGradings.Add(_mapper.Map <ModuleGrading>(item)); } } // delete moduleGrading var moduleGradingDtoIds = dto.ModuleGradings.Select(x => x.Id); var modelGradingToDelete = module.ModuleGradings.Where(x => !moduleGradingDtoIds.Contains(x.Id)); foreach (var item in modelGradingToDelete) { _moduleGradingRepository.Delete(item); } _moduleRepository.Save(); return(GetModuleWithModuleGradingsByModuleId(id)); }
public ModuleWithModuleGradingDto GetModuleWithModuleGradingsByModuleId(int id) { var module = _moduleRepository.GetModuleWithModuleGradingsByModuleId(id); if (module == null) { throw new NotFoundException("Module not found"); } ModuleWithModuleGradingDto result = new ModuleWithModuleGradingDto(); result.Module = _mapper.Map <ModuleDto>(module); foreach (var moduleGrading in module.ModuleGradings) { result.ModuleGradings.Add(_mapper.Map <ModuleGradingDto>(moduleGrading)); } return(result); }
public void PutTest(int id) { var moduleWithModuleGradingToUpdate = new ModuleWithModuleGradingDto { Module = new ModuleDto { Id = 2, Name = "xxxxxxxxx" }, ModuleGradings = new List <ModuleGradingDto> { new ModuleGradingDto { Id = 3, Name = "Quiz 1", Weight = 0.5f, ModuleId = 2 }, new ModuleGradingDto { Id = 0, Name = "Quiz 2", Weight = 0.5f, ModuleId = 2 } } }; _mockModuleModuleGradingsService.Setup(x => x.UpdateModuleWithModuleGrading(id, It.IsAny <ModuleWithModuleGradingDto>())).Returns(moduleWithModuleGradingToUpdate); var moduleWithModuleGradings = _moduleController.Put(id, moduleWithModuleGradingToUpdate) as ObjectResult; var result = moduleWithModuleGradings.Value as ModuleWithModuleGradingDto; Assert.AreEqual(moduleWithModuleGradings.StatusCode, (int)HttpStatusCode.Created); Assert.AreEqual(moduleWithModuleGradingToUpdate.Module.Name, result.Module.Name); Assert.AreEqual(moduleWithModuleGradingToUpdate.ModuleGradings.Count, result.ModuleGradings.Count); Assert.AreEqual(moduleWithModuleGradingToUpdate.ModuleGradings[0].Name, result.ModuleGradings[0].Name); Assert.AreEqual(moduleWithModuleGradingToUpdate.ModuleGradings[0].ModuleId, result.Module.Id); }
public IList <ModuleWithModuleGradingDto> GetModulesWithModuleGradings() { var modules = _moduleRepository.GetModulesWithModuleGradings(); IList <ModuleWithModuleGradingDto> result = new List <ModuleWithModuleGradingDto>(); foreach (var item in modules) { ModuleWithModuleGradingDto moduleWithGradingDto = new ModuleWithModuleGradingDto(); moduleWithGradingDto.Module = _mapper.Map <ModuleDto>(item); foreach (var moduleGrading in item.ModuleGradings) { moduleWithGradingDto.ModuleGradings.Add(_mapper.Map <ModuleGradingDto>(moduleGrading)); } result.Add(moduleWithGradingDto); } return(result); }
public IActionResult Put(int id, ModuleWithModuleGradingDto dto) { var moduleWithGrading = _moduleModuleGradingsService.UpdateModuleWithModuleGrading(id, dto); return(CreatedAtAction(nameof(Get), new { id = moduleWithGrading.Module.Id }, moduleWithGrading)); }