public async Task ApproveBookOrder(BookOrderForApproveDto order) { var bookOrder = _bookOrderRepository.Entities.FirstOrDefault(x => x.Id == order.Id); var animal = _animalRepository.Entities.FirstOrDefault(x => x.Id == bookOrder.AnimalId); if (AnimalStatus.None != animal.Status) { throw new ObjectException("Animal is booked or adopted"); } if (bookOrder == null) { throw new ObjectNotFoundException("Book order not found"); } if (OrderStatus.Pending != bookOrder.Status) { throw new ObjectException("Book order was declined ot booktime was up"); } animal.Status = AnimalStatus.Booked; _animalRepository.Update(animal); _mapper.Map(order, bookOrder); bookOrder.Status = OrderStatus.Approved; bookOrder.ClosingDate = new DateTime(); _bookOrderRepository.Update(bookOrder); await _bookOrderRepository.SaveAsync(); }
public async Task <ActionResult> AppoveBookOrder(BookOrderForApproveDto bookOrder) { if (bookOrder == null) { return(BadRequest()); } try { await _bookOrderService.ApproveBookOrder(bookOrder); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }