// GET: Checkout public ActionResult Index() { //check if user is subscribed already // bool isSubscribed = false; bool activeSubscription = false; using (var db = new LoanComparerModel()) { string useremail = User.Identity.GetUserName().ToLower(); var status = db.subscriptions.Where(d => d.userid == useremail).ToList(); if (status.Count() > 0) { // isSubscribed = true; TimeSpan diff = (TimeSpan)(status[0].enddate - status[0].startdate); if (diff.Days > 0) { activeSubscription = true; } } } if (activeSubscription) { return(Redirect(Session["website"] as string)); } return(View()); }
public async Task <ActionResult> Index() { string secretKey = ConfigurationManager.AppSettings["PaystackSecret"]; var paystackTransactionAPI = new PaystackTransaction(secretKey); var tranxRef = HttpContext.Request.QueryString["reference"]; if (tranxRef != null) { var response = await paystackTransactionAPI.VerifyTransaction(tranxRef); if (response.status) { try { using (var db = new LoanComparerModel()) { int currentCount = 0; currentCount = (int)Session["count"]; db.loandetails.Find((int)Session["selectedItemId"]).count = currentCount + 1; db.loandetails.Find((int)Session["selectedItemId"]).date = DateTime.Now; // Update subscription table var user = new subscription { userid = User.Identity.GetUserName().ToLower(), startdate = DateTime.Now, enddate = DateTime.Now.AddMonths(1) }; db.subscriptions.Add(user); db.SaveChanges(); } } catch (Exception e) { return(View("Error")); } return(View(response)); } } return(View("PaymentError")); }
public ActionResult Index() { List <loandetail> allProviders; List <visitcount> visitcount; var adminreport = new List <adminReport>(); string mostSubscribedPackage; string mostVisitedPackage; int totalVisits; double averageAmountRequested; int mostDurationRequested; int mostAmountRequested; string mostSubscribedName; // try // { using (var db = new LoanComparerModel()) { allProviders = db.loandetails.ToList(); visitcount = db.visitcounts.ToList(); foreach (var provider in allProviders.OrderBy(x => x.id)) { int visitSum = db.visitcounts.Where(d => d.packageid == provider.id) .Select(d => d.visits) .DefaultIfEmpty(0) .Sum(); var uniqueCount = db.visitcounts.Where(x => x.packageid == provider.id).Distinct().Count(); adminreport.Add(new adminReport() { noOfVisits = (int)visitSum, package = provider.package, providername = provider.name, uniqueVisit = uniqueCount }); } //mostSubscribed package var mostVisits = db.loandetails.Max(x => x.count).GetValueOrDefault(0); mostSubscribedName = db.loandetails.Where(x => x.count == mostVisits).Select(x => x.name).FirstOrDefault(); mostSubscribedPackage = db.loandetails.Where(x => x.count == mostVisits).Select(x => x.package).FirstOrDefault(); //mostVisited Package var mostVisitedPackage_query = db.visitcounts.Max(x => x.visits); var mostVisitedID = db.visitcounts.Where(x => x.visits == mostVisitedPackage_query) .Select(x => x.packageid).FirstOrDefault(); mostVisitedPackage = db .loandetails .Find(mostVisitedID) .name.ToString(); // mostVisitedPackage = ""; //totalVisits totalVisits = db.visitcounts.Sum(x => x.visits); //averageAmountRequested var sumOfAmounts = db.requests.Sum(x => x.amountreq); var requestCount = db.visitcounts.Count(); averageAmountRequested = sumOfAmounts / requestCount; //mostDurationRequested mostDurationRequested = (int)db.requests.Max(x => x.durationreq); //mostAmountRequested mostAmountRequested = (int)db.requests.Max(x => x.amountreq); } ViewBag.mostSubscribedName = mostSubscribedName; ViewBag.mostSubscribedPackage = mostSubscribedPackage; ViewBag.mostVisitedPackage = mostVisitedPackage; ViewBag.totalVisits = totalVisits; ViewBag.averageAmountRequested = averageAmountRequested; ViewBag.mostDurationRequested = mostDurationRequested; ViewBag.mostAmountRequested = mostAmountRequested; // } // catch (Exception e) // { // return View("Error"); // } return(View(adminreport)); }
public ActionResult Detail(LoanRequest loanRequest) { if (!ModelState.IsValid) { return(RedirectToAction("Index")); } Session["amount"] = loanRequest.amount; Session["duration"] = loanRequest.duration; List <LoansDetail> loansDetail = new List <LoansDetail>(); long minAmount, maxAmount; int maxDuration; try { using (var db = new LoanComparerModel()) { //save the request string email; if (Request.IsAuthenticated) { email = User.Identity.GetUserName(); } else { email = "annonymouse"; } db.requests.Add(new request() { amountreq = loanRequest.amount, durationreq = loanRequest.duration, username = email }); var query = from d in db.loandetails orderby d.id select d; foreach (var detail in query) { minAmount = detail.minAmount; maxAmount = detail.maxAmount; maxDuration = detail.duration; if (loanRequest.amount >= minAmount && loanRequest.amount <= maxAmount && loanRequest.duration <= maxDuration) { loansDetail.Add(new LoansDetail() { id = detail.id, name = detail.name, package = detail.package }); } } if (loansDetail.Count < 1) { ViewBag.Error = "Sorry. None of Our Providers Can Provide Your Request At the Moment. Pls Try another request."; return(View(loansDetail)); } db.SaveChanges(); } } catch (Exception e) { return(View("Error")); } return(View(loansDetail)); }
public ActionResult Loanterms(int id) { int userDuration = (int)Session["duration"]; long userAmount = (long)Session["amount"]; List <Loanterms> loanterms = new List <Loanterms>(); List <RepaymentDetail> repaymentDetail = new List <RepaymentDetail>(); try { using (var db = new LoanComparerModel()) { //increment count var visitsQuery = db.visitcounts.Where(d => d.packageid == id).FirstOrDefault(); if (visitsQuery == null) { db.visitcounts.Add(new visitcount() { username = User.Identity.GetUserName(), visits = 1, packageid = id }); } else { db.visitcounts.Find(visitsQuery.id).visits += 1; } var query = db.loandetails.Where(d => d.id == id).ToList(); if (query.Count == 0) { return(View("Error")); } foreach (var detail in query) { loanterms.Add(new Loanterms() { id = detail.id, name = detail.name, package = detail.package, count = (int)detail.count, rate = detail.rate, terms = detail.terms, website = detail.website, duration = detail.duration }); } ViewBag.provider = loanterms[0].name; ViewBag.package = loanterms[0].package; int count = 1; while (count < userDuration) { if (userDuration > 3) { loanterms[0].rate += 2; } count += 3; } //for repayment table: double repaymentOnPrincipal = (userAmount) / userDuration; double repaymentOnInterestPerYear = (userAmount * loanterms[0].rate * 0.01) / 12; double monthlyLoanDue = repaymentOnPrincipal + repaymentOnInterestPerYear; double amountPaid = monthlyLoanDue; Session["monthly-due"] = monthlyLoanDue; double total = monthlyLoanDue * userDuration; int rCount = 0; while (rCount < userDuration) { repaymentDetail.Add(new RepaymentDetail() { monthno = rCount + 1, amountToPay = Math.Round(monthlyLoanDue), payPercent = (int)Math.Round((amountPaid / total) * 100), total = total, balance = total - amountPaid, }); amountPaid += monthlyLoanDue; rCount += 1; } db.SaveChanges(); } } catch (Exception e) { return(View("Error")); } ViewBag.Loanterms = loanterms; ViewBag.Repayment = repaymentDetail; return(View()); }