Esempio n. 1
0
        public async Task <IActionResult> CreateModule([FromBody] SaveModuleResource moduleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var module = mapper.Map <SaveModuleResource, Module>(moduleResource);

            var existName = await repository.ModuleNameExist(module);

            var existCode = await repository.ModuleCodeExist(module);

            if (existName != null && existCode != null)
            {
                return(Conflict("Module name and code already exist."));
            }
            else if (existName != null)
            {
                return(Conflict("Module name already exists."));
            }
            else if (existCode != null)
            {
                return(Conflict("Module code already exists."));
            }

            repository.Add(module);
            await unitOfWork.CompleteAsync();

            module = await repository.GetModule(module.Id);

            var result = mapper.Map <Module, ModuleResource>(module);

            return(Ok(result));
        }
Esempio n. 2
0
        public async Task <IActionResult> UpdateModule(int id, [FromBody] SaveModuleResource moduleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var module = await repository.GetModule(id);

            if (module == null)
            {
                return(NotFound());
            }

            module = mapper.Map <SaveModuleResource, Module>(moduleResource, module);

            var exist = await repository.EditModuleExist(module);

            if (exist != null)
            {
                return(Conflict("Module details already exist."));
            }

            await unitOfWork.CompleteAsync();

            module = await repository.GetModule(module.Id);

            var result = mapper.Map <Module, ModuleResource>(module);

            return(Ok(result));
        }