[HttpPut("updateInitialOrder/{id}")] //api/currentOrder/updateInitialOrder/id public async Task <IActionResult> UpdateInitialOrder(int id, [FromBody] SaveInitialOrder saveCurrentOrder) { var existedOrderFromDB = await _currentOrderRepository.GetOrder(saveCurrentOrder.Id); if (existedOrderFromDB == null) { return(NotFound()); } // Convert from View Model to Domain Model _mapper.Map <SaveInitialOrder, DomainLibrary.Order.Order>(saveCurrentOrder, existedOrderFromDB); existedOrderFromDB.LastUpdatedByOn = DateTime.Now; // Insert into database by using Domain Model try { await _uow.CompleteAsync(); } catch (Exception ex) { ModelState.AddModelError(ex.Message, ex.StackTrace); return(BadRequest(ModelState)); } // Fetch complete object from database existedOrderFromDB = await _currentOrderRepository.GetOrder(existedOrderFromDB.Id); // Convert from Domain Model to View Model var result = _mapper.Map <DomainLibrary.Order.Order, SaveInitialOrder>(existedOrderFromDB); // Return view Model return(Ok(result)); }
public async Task <IActionResult> CreateCurrentOrder([FromBody] SaveInitialOrder newSaveOrder) { // Convert from View Model to Domain Model var newOrder = _mapper.Map <SaveInitialOrder, DomainLibrary.Order.Order>(newSaveOrder); newOrder.AddedOn = DateTime.Now; // Insert into database by using Domain Model _currentOrderRepository.AddOrder(newOrder); await _uow.CompleteAsync(); newOrder = await _currentOrderRepository.GetOrder(newOrder.Id); // Convert from Domain Model to View Model var result = _mapper.Map <DomainLibrary.Order.Order, SaveInitialOrder>(newOrder); // Return view Model return(Ok(result)); }