[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));
        }