public async Task <IActionResult> CreateEntree([FromBody] SaveEntreeResource newEntreeResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await _userRepository.IsExistedUser(newEntreeResource.AddedById)) { ModelState.AddModelError("NonExistedUser", "User Not Found!"); return(BadRequest(ModelState)); } if (await _entreeRepository.IsDuplicateEntree(newEntreeResource.Name)) { ModelState.AddModelError("DuplicateEntree", newEntreeResource.Name + " already existed!"); return(BadRequest(ModelState)); } // Convert from View Model to Domain Model var newEntree = _mapper.Map <SaveEntreeResource, Entree>(newEntreeResource); newEntree.AddedOn = DateTime.Now; if (newEntree.StapleFoodId == 0) { newEntree.StapleFoodId = null; } // Insert into database by using Domain Model _entreeRepository.AddEntree(newEntree); await _uow.CompleteAsync(); newEntree = await _entreeRepository.GetEntree(newEntree.Id); // Convert from Domain Model to View Model var result = _mapper.Map <Entree, SaveEntreeResource>(newEntree); // Return view Model return(Ok(result)); }
[HttpPut("{id}")] //api/entree/id public async Task <IActionResult> UpdateEntree(int id, [FromBody] SaveEntreeResource SaveEntreeResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var existedEntreeFromDB = await _entreeRepository.GetEntree(id); if (existedEntreeFromDB == null) { return(NotFound()); } if (await _entreeRepository.IsDuplicateEntree(SaveEntreeResource.Name, SaveEntreeResource.Id)) { ModelState.AddModelError("DuplicateEntree", SaveEntreeResource.Name + " already existed!"); return(BadRequest(ModelState)); } // Convert from View Model to Domain Model _mapper.Map <SaveEntreeResource, Entree>(SaveEntreeResource, existedEntreeFromDB); existedEntreeFromDB.LastUpdatedByOn = DateTime.Now; // Insert into database by using Domain Model await _uow.CompleteAsync(); // Fetch complete object from database existedEntreeFromDB = await _entreeRepository.GetEntree(existedEntreeFromDB.Id); // Convert from Domain Model to View Model var result = _mapper.Map <Entree, SaveEntreeResource>(existedEntreeFromDB); // Return view Model return(Ok(result)); }