Exemplo n.º 1
0
        // 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"));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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());
        }