public async Task <ActionResult> AppoveAdoptOrder(AdoptOrderForApproveDto adoptOrder) { if (adoptOrder == null) { return(BadRequest()); } try { await _adoptOrderService.ApproveAdoptOrder(adoptOrder); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task ApproveAdoptOrder(AdoptOrderForApproveDto order) { var adoptOrder = _adoptOrderRepository.Entities.FirstOrDefault(x => x.Id == order.Id); var animal = _animalRepository.Entities.FirstOrDefault(x => x.Id == adoptOrder.AnimalId); if (AnimalStatus.None != animal.Status) { throw new ObjectException(nameof(adoptOrder.AnimalId), "animal is booked or adopted"); } if (adoptOrder == null || adoptOrder.Status != OrderStatus.Pending) { throw new ObjectNotFoundException("Threre isn't pending adopt order"); } animal.Status = AnimalStatus.Booked; _animalRepository.Update(animal); _mapper.Map(order, adoptOrder); adoptOrder.Status = OrderStatus.Approved; adoptOrder.ClosingDate = DateTime.Now; _adoptOrderRepository.Update(adoptOrder); await _adoptOrderRepository.SaveAsync(); }