[HttpPut("{id}")] //api/vegetable/id public async Task <IActionResult> UpdateVegetable(int id, [FromBody] SaveEntreeComponentResource SaveEntreeComponentResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var isExistedVegetable = await _vegeRepository.GetVegetable(id); if (isExistedVegetable == null) { return(NotFound()); } // Convert from View Model to Domain Model _mapper.Map <SaveEntreeComponentResource, Vegetable> (SaveEntreeComponentResource, isExistedVegetable); isExistedVegetable.LastUpdatedByOn = DateTime.Now; // Insert into database by using Domain Model await _uow.CompleteAsync(); // Fetch complete object from database isExistedVegetable = await _vegeRepository.GetVegetable(isExistedVegetable.Id); // Convert from Domain Model to View Model var result = _mapper.Map <Vegetable, SaveEntreeComponentResource> (isExistedVegetable); // Return view Model return(Ok(result)); }
public async Task <IActionResult> CreateVegetable([FromBody] SaveEntreeComponentResource newVegetableResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await _userRepository.IsExistedUser(newVegetableResource.AddedByUserId)) { ModelState.AddModelError("NonExistedUser", "User Not Found!"); return(BadRequest(ModelState)); } if (await _vegeRepository.IsDuplicateVegetable(newVegetableResource.keyValuePairInfo.Name)) { ModelState.AddModelError("DuplicateVegetable", newVegetableResource.keyValuePairInfo.Name + " already existed!"); return(BadRequest(ModelState)); } // Convert from View Model to Domain Model var newVegetable = _mapper.Map <SaveEntreeComponentResource, Vegetable> (newVegetableResource); newVegetable.AddedOn = DateTime.Now; // Insert into database by using Domain Model _vegeRepository.AddVegetable(newVegetable); await _uow.CompleteAsync(); newVegetable = await _vegeRepository.GetVegetable(newVegetable.Id); // Convert from Domain Model to View Model var result = _mapper.Map <Vegetable, SaveEntreeComponentResource> (newVegetable); // Return view Model return(Ok(result)); }