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