public PetAdoptionOrder AddPetAdoptionOrder(PetAdoptionOrder order)
        {
            PetAdoptionOrder serviceOrder = order;

            _lastId++;
            serviceOrder.Id = _lastId;
            _orders.Add(order);
            return(serviceOrder);
        }
        public void RemovePetAdoptionOrder(PetAdoptionOrder order)
        {
            var adoptionOrder = _orders.FirstOrDefault((p) => p.Id == order.Id);

            if (adoptionOrder == null)
            {
                throw new CityServiceException(500, "Solicitação de Adoção de animal não encontrada! Contactar administrador.");
            }
            _orders.Remove(adoptionOrder);
        }
        private PetAdoptionOrder GeneratePetAdoptionOrder(PetType type, PetAdoptionRequest request)
        {
            PetAdoptionOrder order = new PetAdoptionOrder();

            order.OrderDate = DateTime.Now;
            order.Type      = type;
            order.PetName   = request.PetName;
            order.Cpf       = request.Cpf;
            order.Adress    = request.Adress;
            order.Name      = request.Name;

            return(order);
        }
        public IHttpActionResult OrderCatAdoption(PetAdoptionRequest request)
        {
            try
            {
                if (request == null || "".Equals(request.Cpf) || "".Equals(request.Adress) || "".Equals(request.Name) ||
                    "".Equals(request.PetName) || "".Equals(request.PostalCode))
                {
                    return(BadRequest("Parâmetros inválidos!"));
                }


                PetAdoptionOrder order = GeneratePetAdoptionOrder(PetType.Cat, request);
                order = _petAdoptionOrderRepository.AddPetAdoptionOrder(order);
                return(Ok(order));
            }
            catch (Exception e)
            {
                return(InternalServerError(new CityServiceException(500, "Ocorreu um erro inesperado ao incluir solicitação de adoção de Gato! Entre em contato com o administrador do sistema.")));
            }
        }