public async Task <ActionResult> GetSpecificPlannedPurchase(long purchaseId)
        {
            PlannedPurchaseDTO fetchedPurchase = await plannedPurchaseRepository.GetPlannedPurchaseByIdAsync(purchaseId);

            if (fetchedPurchase == null)
            {
                return(NotFound());
            }

            return(Ok(dtoMapper.Map <PlannedPurchase>(fetchedPurchase)));
        }
        public async Task <IActionResult> DeletePlannedPurchase(long purchaseId)
        {
            PlannedPurchaseDTO purchaseToDelete = await plannedPurchaseRepository.GetPlannedPurchaseByIdAsync(purchaseId);

            if (purchaseToDelete == null)
            {
                return(NotFound());
            }

            await plannedPurchaseRepository.DeletePlannedPurchaseAsync(purchaseToDelete);

            return(Ok());
        }
        public async Task <IActionResult> UpdatePlannedPurchase(long purchaseId, PlannedPurchase purchaseToUpdate)
        {
            if (purchaseToUpdate == null)
            {
                return(BadRequest("You must provide a PlannedPurchase to update"));
            }

            if (purchaseId == purchaseToUpdate.PlannedPurchase_Id)
            {
                return(BadRequest("A matching purchase ID must be provided"));
            }

            PlannedPurchaseDTO checkPurchase = await plannedPurchaseRepository.GetPlannedPurchaseByIdAsync(purchaseId);

            if (checkPurchase == null)
            {
                return(NotFound());
            }

            await plannedPurchaseRepository.UpdatePlannedPurchaseAsync(dtoMapper.Map <PlannedPurchaseDTO>(purchaseToUpdate));

            return(Ok());
        }