/// <summary>
 /// AccountSummary
 /// </summary>
 /// <returns></returns>
 public ActionResult AccountSummary()
 {
     if (Convert.ToInt32(Session["user"].ToString()) > 0)
     {
         StockModels objStockModels = new StockModels();
         ViewBag.TradeBalance = Math.Round(Convert.ToDouble(objStockModels.GetUserAccountBalance(Convert.ToInt32(Session["user"].ToString()))), 2);
         return View();
     }
     else
     {
         return RedirectToAction("CreateAccount");
     }
 }
        public ActionResult BuyTrade(double TradeAmount, Int32 PayoutPercentage, string SymbolId, string TradeType, Int32 ExpiryTimeInterval, string xpoints, string ypoints, string TradeWay)
        {
            CTrade objCTrade = new CTrade();
            Int32 UserId = Convert.ToInt32(Session["user"]);
            Int32 GmtInfo = Convert.ToInt32(Session["GMTInfo"]);
            try
            {
                if (UserId > -1)
                {
                    objCTrade.TradeId = -1;
                    objCTrade.TradeAmount = TradeAmount;
                    objCTrade.PayoutPerCentage = PayoutPercentage;
                    objCTrade.SymbolId = SymbolId;
                    objCTrade.TradeType = TradeType;
                    objCTrade.UserId = UserId;
                    objCTrade.ExpiryTimeInterval = ExpiryTimeInterval;
                    objCTrade.xpoints = xpoints;
                    objCTrade.ypoints = ypoints;
                    objCTrade.TradeWay = TradeWay;
                    StockModels objStockModels = new StockModels();

                    objCTrade = objStockModels.BuyTrade(objCTrade, GmtInfo);

                    if (objCTrade.TradeId > 0)
                    {
                        if (Convert.ToInt32(Session["user"]) > 0)
                        {
                            Session["TradeBalance"] = Math.Round(Convert.ToDouble(objStockModels.GetUserAccountBalance(Convert.ToInt32(Session["user"].ToString()))), 2);
                        }
                        else
                        {
                            Session["TradeBalance"] = -1;
                        }
                    }
                    else
                    {
                        return Json(objCTrade);
                    }
                }
                else
                {
                    objCTrade.TradeId = -1;
                    return Json(objCTrade);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return PartialView("_SingleOpenTrade", objCTrade);
        }
        public Int32 OpenAccount(string FirstName, String LastName, String Title, String EmailId, String Country, String PhoneNo, String DateOfBirth, String UserName, String Password, String AccountBaseCurrency, bool IsPromotionalSubcribed)
        {
            try
            {
                RegisterModel objRegisterModel = new RegisterModel();
                UserAccountModels objUserAccountModels = new UserAccountModels();
                objRegisterModel.FirstName = FirstName;
                objRegisterModel.LastName = LastName;
                objRegisterModel.Title = Title;
                objRegisterModel.Email = EmailId;
                objRegisterModel.Country = Country;
                objRegisterModel.PhoneNo = PhoneNo;
                objRegisterModel.DateOfBirth = DateOfBirth;
                objRegisterModel.UserName = UserName;
                objRegisterModel.Password = Password;
                objRegisterModel.AccountBaseCurrency = AccountBaseCurrency;
                objRegisterModel.IsPromotionalSubcribed = IsPromotionalSubcribed;
                objRegisterModel = objUserAccountModels.OpenAccount(objRegisterModel);

                if (objRegisterModel.UserId > 0)
                {
                    objUserAccountModels.ValidateUser(UserName, Password);
                    Session["username"] = FirstName + " " + LastName;
                    Session["user"] = objRegisterModel.UserId;
                    StockModels objStockModels = new StockModels();
                    Session["TradeBalance"] = Math.Round(Convert.ToDouble(objStockModels.GetUserAccountBalance(Convert.ToInt32(Session["user"].ToString()))), 2);
                    return 1;
                }
                else
                {
                    return -2;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ActionResult LogIn(String UserName, String Password, Int32 UserId = 0)
        {
            try
            {

                if (UserId != 0)
                {
                    Session["GMTInfo"] = UserName;
                }

                UserAccountModels objUserAccountModels = new UserAccountModels();
                Int32 nResult = objUserAccountModels.ValidateUser(UserName, Password, UserId);

                if (nResult > 0)
                {
                    Session["user"] = nResult;
                    Session["username"] = CommonCollection.GetUserName(nResult);
                    StockModels objStockModels = new StockModels();
                    Session["TradeBalance"] = Math.Round(Convert.ToDouble(objStockModels.GetUserAccountBalance(Convert.ToInt32(Session["user"].ToString()))), 2);
                    Session["isadmin"] = false;
                }
                else
                {
                    Session["user"] = -1;
                    ViewBag.WrongLogin = 1;
                    ViewBag.WrongLoginCreditional = "Wrong UserName Password!";
                    Session["isadmin"] = false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return PartialView("~/Views/Shared/_LayoutLeft.cshtml");
        }
 public Double GetUserAccountBalance()
 {
     if (Convert.ToInt32(Session["user"]) > 0)
     {
         StockModels objStockModels = new StockModels();
         Session["TradeBalance"] = Math.Round(Convert.ToDouble(objStockModels.GetUserAccountBalance(Convert.ToInt32(Session["user"].ToString()))), 2);
         return Convert.ToDouble(Session["TradeBalance"]);
     }
     else
     {
         return -1;
     }
 }
        public ActionResult GetTradeTabsWithAllTradeHistory()
        {
            VMIndex objVMIndex = new VMIndex();

            StockModels objStockModels = new StockModels();

            Int32 UserId = Convert.ToInt32(Session["user"]);

            Int32 GmtInfo = Convert.ToInt32(Session["GMTInfo"]);

            try
            {
                if (UserId > -1)
                {
                    objVMIndex.LstOpenTrade = objStockModels.GetOpenTrades(UserId, GmtInfo);
                    objVMIndex.LstTradeHistory = objStockModels.GetAllTradeHistory(UserId, GmtInfo);
                    Session["TradeBalance"] = objStockModels.GetUserAccountBalance(UserId);
                    return PartialView("_TradeTabs", objVMIndex);
                }
                else
                {
                    CTrade objCTrade = new CTrade();
                    objCTrade.TradeId = -1;
                    return Json(objCTrade);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ActionResult GetTradebyTradeId(Int32 TradeId, string ExpPrice)
        {
            CTrade objCTrade = new CTrade();

            StockModels objStockModels = new StockModels();

            Int32 UserId = Convert.ToInt32(Session["user"]);

            Int32 GmtInfo = Convert.ToInt32(Session["GMTInfo"]);

            try
            {
                if (UserId > -1)
                {

                    objCTrade.TradeId = TradeId;

                    objCTrade.UserId = UserId;

                    objStockModels.TradeExpire(TradeId, ExpPrice);

                    objCTrade = objStockModels.GetTradebyTradeId(objCTrade, GmtInfo, 1);

                    ViewBag.IsClosed = 1;

                    Session["TradeBalance"] = objStockModels.GetUserAccountBalance(UserId);

                    ViewBag.IsClosed = 1;

                    if (objCTrade.TradeId == 0)
                    {
                        return Json(objCTrade);
                    }
                    return PartialView("_SingleOpenTrade", objCTrade);
                }
                else
                {
                    objCTrade.TradeId = -1;
                    return Json(objCTrade);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }