// GET: Exchange
        public ActionResult Index()
        {
            ExchangeIndexModel indexModel = new ExchangeIndexModel();

            indexModel.exchangeRateModel = GetRate();
            indexModel.userBalanceModel  = GetBalance();
            indexModel.exchangeLogModel  = new ExchangeLogModel
            {
                avail_currency_code = new[]
                {
                    new SelectListItem {
                        Value = indexModel.exchangeRateModel.rates.MYR.ToString(), Text = "MYR", Selected = true
                    },
                    new SelectListItem {
                        Value = indexModel.exchangeRateModel.rates.AUD.ToString(), Text = "AUD"
                    },
                    new SelectListItem {
                        Value = indexModel.exchangeRateModel.rates.SGD.ToString(), Text = "SGD"
                    }
                }
            };


            //ViewBag.RateList = ConversionRateSelectList(indexModel.exchangeRateModel, true);
            //ViewData["RateList"] = ConversionRateSelectList(indexModel.exchangeRateModel, true);

            //ViewBag.CurrencyCode = ConversionRateSelectList(indexModel.exchangeRateModel, false);

            return(View(indexModel));
        }
예제 #2
0
        public async Task <IActionResult> Index(int page, string sort, string account)
        {
            IQueryable <StockDefinition> stocks = null;

            if (sort == null)
            {
                sort = "Price";
            }

            int view = 14;

            if (sort == "Name")
            {
                stocks = _context.StockDefinitions.AsQueryable().OrderBy(s => s.Ticker).Skip(page * view).Take(view);
            }
            else if (sort == "Price")
            {
                stocks = _context.StockDefinitions.AsQueryable().OrderByDescending(s => s.Current_Value).Skip(page * view).Take(view);
            }

            // Allow an account to be specified
            Entity chosen = null;

            if (string.IsNullOrWhiteSpace(account))
            {
                chosen = await _userManager.GetUserAsync(User);
            }
            else
            {
                chosen = await _context.Users.FindAsync(account);

                if (chosen == null)
                {
                    chosen = await _context.Groups.FindAsync(account);
                }
            }

            ExchangeIndexModel model = new ExchangeIndexModel()
            {
                Stock_List     = stocks,
                Chosen_Account = chosen
            };

            return(View(model));
        }
        public ActionResult Index(ExchangeIndexModel indexModel, FormCollection formCollection)
        {
            if (ModelState.IsValid)
            {
                DateTime dtNow  = DateTime.Now;
                long     userid = long.Parse(Session["userid"].ToString());

                indexModel.exchangeLogModel.user_id          = userid;
                indexModel.exchangeLogModel.transaction_date = dtNow;
                indexModel.exchangeLogModel.to_currency_code = formCollection["ToCurrencyCode"];


                var dataUserBalance = _db.userBalanceModels.Where(b => b.user_id == userid).ToList();

                if (dataUserBalance.Count > 0)
                {
                    decimal toAmount   = decimal.Parse(indexModel.exchangeLogModel.to_amount);
                    decimal fromAmount = decimal.Parse(indexModel.exchangeLogModel.from_amount);
                    decimal balanceUSD = decimal.Parse(dataUserBalance.FirstOrDefault().bal_usd.ToString());
                    balanceUSD = decimal.Subtract(balanceUSD, fromAmount);

                    dataUserBalance.FirstOrDefault().bal_usd          = balanceUSD.ToString();
                    dataUserBalance.FirstOrDefault().last_update_date = dtNow;

                    switch (indexModel.exchangeLogModel.to_currency_code)
                    {
                    case "MYR":
                        decimal balanceMYR = decimal.Parse(dataUserBalance.FirstOrDefault().bal_myr.ToString());
                        balanceMYR = decimal.Add(balanceMYR, toAmount);
                        dataUserBalance.FirstOrDefault().bal_myr = balanceMYR.ToString();
                        break;

                    case "AUD":
                        decimal balanceAUD = decimal.Parse(dataUserBalance.FirstOrDefault().bal_aud.ToString());
                        balanceAUD = decimal.Add(balanceAUD, toAmount);
                        dataUserBalance.FirstOrDefault().bal_aud = balanceAUD.ToString();
                        break;

                    case "SGD":
                        decimal balanceSGD = decimal.Parse(dataUserBalance.FirstOrDefault().bal_sgd.ToString());
                        balanceSGD = decimal.Add(balanceSGD, toAmount);
                        dataUserBalance.FirstOrDefault().bal_sgd = balanceSGD.ToString();
                        break;
                    }
                }


                //var data = _db.userModels.Where(s => s.email.Equals(email) && s.password.Equals(f_password)).ToList();

                _db.Configuration.ValidateOnSaveEnabled = false;
                _db.exchangeLogModels.Add(indexModel.exchangeLogModel);
                _db.SaveChanges();
            }
            else
            {
                ViewBag.error = "Login failed";
                //return RedirectToAction("Login");
                return(View());
            }

            //return View();
            return(RedirectToAction("ViewReport"));
        }