public async Task <IActionResult> Update(int id, [FromBody] SaveBusOrderResource busOrderResource)
        {
            // TODO : cegah save jika sudah lewat waktu
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var busOrder = await busOrderRepository.GetOne(id);

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

            if (busOrder.UserId != busOrderResource.UserId)
            {
                busOrderResource.UserId = busOrder.UserId;
            }

            if (busOrder.IsReadyToCollect == true && busOrderResource.isReadyToCollect == true)
            {
                return(BadRequest("Can't edit the record since it was ready to collect, please disable ready to collect then save and try again"));
            }

            if (busOrder.IsReadyToCollect == false)
            {
                busOrder = mapper.Map(busOrderResource, busOrder);
            }

            if (busOrder.IsReadyToCollect == true && busOrderResource.isReadyToCollect == false)
            {
                if (busOrder.BusOrderVerificationId != null)
                {
                    var busVerification = await busOrderVerificationRepository.GetOne(busOrder.BusOrderVerificationId.Value);

                    if (busVerification.IsClosed == true)
                    {
                        return(BadRequest("Can't edit the record since it was close in verification"));
                    }
                }
                busOrder.IsReadyToCollect = false;
            }

            if (await unitOfWork.CompleteAsync() == false)
            {
                throw new Exception(message: $"Updating order with id: {id} failed on save");
            }

            busOrder = await busOrderRepository.GetOne(busOrder.Id);

            var result = mapper.Map <BusOrder, ViewBusOrderResource>(busOrder);

            return(Ok(result));
        }
        public async Task <IActionResult> Create([FromBody] SaveBusOrderResource busOrderResource)
        {
            // TODO : cegah save jika sudah lewat waktu
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var busOrder = mapper.Map <SaveBusOrderResource, BusOrder>(busOrderResource);

            busOrderRepository.Add(busOrder);

            if (await unitOfWork.CompleteAsync() == false)
            {
                throw new Exception(message: "Create new order failed on save");
            }

            busOrder = await busOrderRepository.GetOne(busOrder.Id);

            var result = mapper.Map <BusOrder, ViewBusOrderResource>(busOrder);

            return(Ok(result));
        }