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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
        public IActionResult Put(int id, ModuleWithModuleGradingDto dto)
        {
            var moduleWithGrading = _moduleModuleGradingsService.UpdateModuleWithModuleGrading(id, dto);

            return(CreatedAtAction(nameof(Get), new { id = moduleWithGrading.Module.Id }, moduleWithGrading));
        }