Esempio n. 1
0
        public async Task <ActionResult> AppoveFinalyAdoptOrder(AdoptOrderForApproveFinalyDto adoptOrder)
        {
            if (adoptOrder == null)
            {
                return(BadRequest());
            }
            try
            {
                await _adoptOrderService.ApproveFinalyAdoptOrder(adoptOrder);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Esempio n. 2
0
        public async Task ApproveFinalyAdoptOrder(AdoptOrderForApproveFinalyDto 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 && (animal.Status == AnimalStatus.Booked && adoptOrder.Status != OrderStatus.Approved))
            {
                throw new ObjectException(nameof(adoptOrder.AnimalId), "animal is booked or adopted");
            }

            if (adoptOrder == null || adoptOrder.Status == OrderStatus.Declined)
            {
                throw new ObjectNotFoundException("You can not approve this order");
            }

            animal.Status = AnimalStatus.Adopted;
            _animalRepository.Update(animal);


            adoptOrder.Status      = OrderStatus.Approved;
            adoptOrder.ClosingDate = DateTime.Now;
            _adoptOrderRepository.Update(adoptOrder);
            await _adoptOrderRepository.SaveAsync();
        }