using BuddyFinance.Common.Encryption; using BuddyFinance.Integration; using BuddyFinance.Integration.Models; using BuddyFinance.Integration.Models.LoanOffers; using BuddyFinance.Integration.Models.LoanRequests; using BuddyFinance.Integration.Utils; using BuddyFinance.WebApi.Filters; using System.Collections.Generic; using System.Web.Http; namespace BuddyFinance.WebApi.Controllers { /// /// /// [RoutePrefix("api/loanoffers")] [Authenticate] public class LoanOffersController : BaseController { private LoanOffersIntergrator _loanOffersIntergrator; /// /// /// public LoanOffersController() { _loanOffersIntergrator = new LoanOffersIntergrator(); } /// /// /// /// /// public GetLoanOfferResult GetLoanOffer(int id) { return _loanOffersIntergrator.GetLoanOffer(id); } /// /// /// /// public GetLoanOffersResult GetLoanOffers() { return _loanOffersIntergrator.GetLoanOffers(); } /// /// /// /// /// public GetLoanOffersResult GetLoanOffers(int profileId) { return _loanOffersIntergrator.GetLoanOffers(profileId); } /// /// /// /// /// public GetLoanOffersResult GetLoanOffers(string lenderId) { var profileId = lenderId.ToDecryptedInt(); return _loanOffersIntergrator.GetLoanOffers(profileId); } /// /// /// /// /// [HttpPost] public GetLoanOffersResult GetLoanOffersByAmount(GetOffersModel getOffers)//,Duration duration, int profileId) { var token = System.Web.HttpContext.Current.Request.Headers["X-Auth-Token"]; //currentl user token var profileId = string.IsNullOrEmpty(token) ? null : (int?)TokenManager.ProfileId(token); return _loanOffersIntergrator.GetLoanOffersByAmount(getOffers, profileId);//, duration, profileId); } /// /// /// /// /// [HttpPost] public SaveLoanOfferResult SaveLoanOffer(LoanOfferModel loanOfferModel) { //fix for 'Profile not found error' var token = System.Web.HttpContext.Current.Request.Headers["X-Auth-Token"]; //currentl user token var profileId = TokenManager.ProfileId(token); loanOfferModel.LenderId = profileId; return _loanOffersIntergrator.SaveLoanOffer(loanOfferModel); } //public EditLoanOfferResult EditLoanOfferResult(LoanOfferModel loanOfferModel) //{ // return _loanOffersIntergrator.EditLoanOffer(loanOfferModel); //} /// /// /// /// /// [HttpPost] public DeleteLoanOffer DeleteLoanOffer(int offerId) { return _loanOffersIntergrator.DeleteLoanOffer(offerId); } /// /// /// /// /// [HttpPost] public AcceptLoanOfferRequest AcceptLoanOfferRequest(int loanRequestOfferId) { return _loanOffersIntergrator.AcceptLoanOfferRequest(loanRequestOfferId); } /// /// /// /// /// [HttpPost] public RejectLoanOfferRequest RejectLoanOfferRequest(RejectLoanOfferModel model) { return _loanOffersIntergrator.RejectLoanOfferRequest(model); } /// /// /// /// /// [HttpGet] public OfferLoanRequestsResult GetLoanRequestOffers(int loanOfferId) { return _loanOffersIntergrator.GetOfferLoanRequests(loanOfferId); } /// /// Returns offers for a selected Request /// /// Request Id /// [HttpGet] public BaseResult> LoanRequestOffers(int loanRequestId) { return _loanOffersIntergrator.LoanRequestOffers(loanRequestId); } /// /// /// /// /// [HttpGet] public BaseResult LoanRequestOffersCount(int profileId) { return _loanOffersIntergrator.LoanRequestOffersCount(profileId); } /// /// /// /// /// [HttpPost] public RenderLoanOffer renderLoanOffer(int loanOfferId) { return _loanOffersIntergrator.RenderLoanOffer(loanOfferId); } /// /// /// /// /// [HttpPost] public ClaimLoanOfferBalance ClaimLoanOfferBalance(int loanofferId) { return _loanOffersIntergrator.ClaimLoanOfferBalance(loanofferId); } } }