/// <summary> /// Disapproves the request. /// </summary> /// <param name="adminMember">The admin member</param> /// <returns>The message</returns> public string Disapprove(FamilyMember adminMember) { var responseMessage = string.Empty; var currentApprovalRequest = _smsApprovalHistory.GetRecentApprovalRequest(adminMember.Id); if (currentApprovalRequest == null) { return(string.Empty); } switch (currentApprovalRequest.ApprovalType) { case ApprovalType.GiftPurchase: if (currentApprovalRequest.PurchasedGiftCardID.HasValue) { _spendService.DisapprovePurchasedGiftCard(currentApprovalRequest.PurchasedGiftCardID.Value); } break; case ApprovalType.StockPurchase: if (currentApprovalRequest.StockPurchaseRequestID.HasValue) { _saveService.DisapprovePurchasedStock(currentApprovalRequest.StockPurchaseRequestID.Value); } break; case ApprovalType.CharityDonation: if (currentApprovalRequest.DonationID.HasValue) { _charityService.DisapproveDonation(currentApprovalRequest.DonationID.Value); } break; case ApprovalType.CashOut: if (currentApprovalRequest.CashOutID.HasValue) { _spendService.DisapproveCashOut(currentApprovalRequest.CashOutID.Value); } break; case ApprovalType.ChorePayment: _choreService.DisapprovePayDayPayment(adminMember.User.FamilyID); break; } _smsApprovalHistory.MarkAsNotActive(currentApprovalRequest.Id); return("Ok, got it. No allowance will be paid."); }