public ActionResult Index(User_Accounts us)
        {
            User_Accounts res = new AccountModel().login(us.Username, Encryptor.MD5Hash(us.Password));

            if (res != null)
            {
                Session["user"] = res;
                if (res.Type == 1)
                {
                    return(RedirectToAction("index", "admin"));
                }
                CartModel cart = Session["Cart"] as CartModel;
                //lưu session cart vào db
                if (cart != null)
                {
                    var cartInDb = new Cart();
                    foreach (var item in cart.Items)
                    {
                        cartInDb.Username  = res.Username;
                        cartInDb.ProductId = item.productsInCart.ProductId;
                        if (new CartModel().AddCartSessionToDb(cartInDb, item.amountInCart, res.Username))
                        {
                        }
                    }
                    Session["Cart"] = null;
                }
                return(RedirectToAction("index", "home"));
            }
            else
            {
                ModelState.AddModelError("", "Tên đăng nhập hoặc mật khẩu không đúng");
            }
            return(View(us));
        }
Esempio n. 2
0
        //
        //Initial account pull from Plaid. Pulls and persists all accounts selected with the authenticated institution
        private async Task AddAccounts()
        {
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/accounts/get");

            string data = String.Format("{{ \"client_id\":\"{0}\" , \"secret\":\"{1}\" , \"access_token\":\"{2}\" }}", _clientid, _secret, _accesstoken);

            request.Content = new StringContent(data, Encoding.UTF8, "application/json");

            var connectasync = await client.SendAsync(request);

            var contents = connectasync.Content.ReadAsStringAsync().Result;

            var obj = JObject.Parse(contents);

            //parse the JSON object extract account data and persist to database
            using (var context = new PersonalFinanceAppEntities())
            {
                foreach (var account in obj["accounts"])
                {
                    User_Accounts accounts_db = new User_Accounts
                    {
                        AccountID        = (string)account["account_id"],
                        UserID           = User.Id,
                        AccountName      = (string)account["official_name"],
                        Balance          = (decimal)account["balances"]["current"],
                        Institution_name = this.Institution_name,
                        Access_Token     = _accesstoken,
                        Account_Type     = (string)account["type"]
                    };

                    context.User_Accounts.Add(accounts_db);
                    await context.SaveChangesAsync();
                }
            }
        }
Esempio n. 3
0
        public ActionResult Register(register register)
        {
            if (register.pass != register.repass || !ModelState.IsValid)
            {
                ModelState.AddModelError("", "Mật khẩu không trùng khớp! Vui lòng kiểm tra lại.");
                return(View(register));
            }
            User_Accounts accounts = new User_Accounts()
            {
                Username    = register.username,
                Password    = Encryptor.MD5Hash(register.pass),
                FirstName   = register.firstname,
                LastName    = register.lastname,
                PhoneNumber = register.phone,
                Email       = register.email,
                Address     = register.address
            };

            if (new accountModel().register(accounts))
            {
                return(View("index"));
            }
            else
            {
                ModelState.AddModelError("", "lam lai");
                return(View(register));
            }
        }
        public ActionResult Index(User_Accounts user)
        {
            ViewBag.Type       = "Customer";
            ViewBag.Controller = "Home";
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;

            if (user.FirstName == null || user.LastName == null ||
                user.PhoneNumber == null || user.Email == null || user.Address == null)
            {
                user.FirstName   = "";
                user.LastName    = "";
                user.PhoneNumber = "";
                user.Email       = "";
                user.Address     = "";
            }
            userInDb.FirstName   = user.FirstName;
            userInDb.LastName    = user.LastName;
            userInDb.PhoneNumber = user.PhoneNumber;
            userInDb.Email       = user.Email;
            userInDb.Address     = user.Address;
            if (new AccountModel().updateAccount(userInDb))
            {
                return(View(userInDb));
            }
            else
            {
                ModelState.AddModelError("", "Lỗi");
            }
            return(View());
        }
        public ActionResult Order(OrderModel order)
        {
            ViewBag.Type       = "Customer";
            ViewBag.Controller = "Home";
            User_Accounts userInDb    = HttpContext.Session["user"] as User_Accounts;
            List <Cart>   carts       = new CartModel().AllCartOfUser(userInDb.Username);
            var           orderMenu   = new Order();
            var           orderDetail = new Orders_Detail();

            orderDetail.Customer    = userInDb.Username;
            orderDetail.OrderDate   = DateTime.Now;
            orderDetail.Note        = order.detail.Note;
            orderDetail.TotalAmount = new CartModel().TotalAmountCartInDB(userInDb.Username);
            orderDetail.TotalMoney  = new CartModel().TotalMoneyInCart();
            if (new OrderModel().AddOrderDetail(orderDetail))
            {
                foreach (var item in carts)
                {
                    orderMenu.ProductId     = item.ProductId;
                    orderMenu.Orders_Detail = orderDetail.OrderDetailId;
                    //orderMenu.Orders_Detail1.ShipId = order.detail.ShipId;
                    if (new OrderModel().AddOrderMenuToDb(orderMenu, item.Amount) &&
                        new CartModel().DeleteCartFromDb(userInDb.Username, item.ProductId) &&
                        new OrderModel().UpdateQuantityOfProduct(item.ProductId, item.Amount))
                    {
                    }
                }
            }
            return(RedirectToAction("OrderMenu"));
        }
        public ActionResult Index()
        {
            ViewBag.Type       = "Customer";
            ViewBag.Controller = "Home";
            User_Accounts user = HttpContext.Session["user"] as User_Accounts;

            return(View(user));
        }
        //trang đơn hàng
        public ActionResult OrderMenu()
        {
            ViewBag.Type       = "Customer";
            ViewBag.Controller = "Home";
            User_Accounts userInDb   = HttpContext.Session["user"] as User_Accounts;
            var           orderMenus = new OrderModel().AllOrderMenusOfUser(userInDb.Username);

            return(View(orderMenus));
        }
        public ActionResult UpdateAvatar(string username, string ava_url)
        {
            User_Accounts user = HttpContext.Session["user"] as User_Accounts;

            user.Avatar_url = ava_url;
            if (new AccountModel().updateAccount(user))
            {
                return(Content("true"));
            }
            return(Content("false"));
        }
 public bool register(User_Accounts accounts)
 {
     try
     {
         _context.User_Accounts.Add(accounts);
         _context.SaveChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Esempio n. 10
0
 public bool CreateAccount(User_Accounts user)
 {
     try
     {
         _context.User_Accounts.Add(user);
         _context.SaveChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
        // mua hàng
        public ActionResult BuyProducts()
        {
            ViewBag.Type       = "Customer";
            ViewBag.Controller = "Home";
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;
            var           allCart  = new CartModel().AllCartOfUser(userInDb.Username);
            var           model    = new OrderModel
            {
                carts = allCart,
                user  = userInDb
            };

            ViewBag.TotalMoney = new CartModel().TotalMoneyInCart();
            return(View(model));
        }
Esempio n. 12
0
        // GET: Home
        public ActionResult Index(int page = 1, int pagesize = 6)
        {
            ViewBag.Name       = "Trang sản phẩm";
            ViewBag.Controller = "Home";
            ViewBag.Type       = "Customer";
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;

            if (userInDb != null)
            {
                var product = new ProductModel().allProductsOfAnotherUser(userInDb.Username, page, pagesize);
                return(View(product));
            }
            var allProducts = new ProductModel().allProducts(page, pagesize);

            return(View(allProducts));
        }
        public ActionResult checkProduct()
        {
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;
            var           allCart  = new CartModel().AllCartOfUser(userInDb.Username);

            foreach (var item in allCart)
            {
                var pro = new CartModel().GetProducts(item.ProductId);
                if (new OrderModel().CheckProduct(item.Username, item.ProductId) ||
                    item.Amount > pro.Quantity)
                {
                    return(Content("false"));
                }
            }
            return(Content("/Customer/BuyProducts"));
        }
 public ActionResult registerAccount(User_Accounts model, string rePass)
 {
     if (model.Password != rePass || model.Password == null)
     {
         ModelState.AddModelError("", "Hai mật khẩu không trùng khớp");
         return(View(model));
     }
     model.Password   = Encryptor.MD5Hash(model.Password);
     model.Type       = 3;
     model.Avatar_url = "/Photo/images/default.png";
     if (new AccountModel().CreateAccount(model))
     {
         return(View("index"));
     }
     ModelState.AddModelError("", "Lỗi... Hãy thử lại");
     return(View(model));
 }
Esempio n. 15
0
        public IEnumerable <Order> GetOrderByCustomer(User_Accounts acc)
        {
            List <Orders_Detail> listOD     = new List <Orders_Detail>();
            List <Order>         listO      = new List <Order>();
            List <Order>         listResult = new List <Order>();

            listOD = _context.Orders_Detail.Where(x => x.Customer == acc.Username).ToList();
            foreach (var od in listOD)
            {
                listO = _context.Orders.Where(x => x.Orders_Detail == od.OrderDetailId).ToList();
                foreach (var o in listO)
                {
                    listResult.Add(o);
                }
            }
            return(listResult);
        }
        //trang giỏ hàng
        public ActionResult Index()
        {
            ViewBag.Type       = "Customer";
            ViewBag.Controller = "Home";
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;

            if (userInDb == null)
            {
                CartModel cart = Session["Cart"] as CartModel;
                return(View(cart));
            }
            else
            {
                List <Cart> allcartInDb = new CartModel().AllCartOfUser(userInDb.Username);
                ViewBag.TotalMoney = new CartModel().TotalMoneyInCart();
                return(View("CartInDb", allcartInDb));
            }
        }
        public ActionResult RemoveCart(int id)
        {
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;

            if (userInDb == null)
            {
                CartModel cart = Session["Cart"] as CartModel;
                cart.RemoveCartItem(id);
                return(RedirectToAction("Index", "Cart"));
            }
            else
            {
                if (new CartModel().DeleteCartFromDb(userInDb.Username, id))
                {
                    return(RedirectToAction("Index", "Cart"));
                }
                return(RedirectToAction("Index", "Cart"));
            }
        }
        public ActionResult BuyNow(int id)
        {
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;
            var           pro      = new CartModel().GetProducts(id);

            if (pro.Quantity == 0)
            {
                return(Content("false"));
            }
            else
            {
                if (userInDb == null)
                {
                    if (pro != null)
                    {
                        GetCart().Add(pro);
                    }
                    return(Content("/Cart/Index"));
                }
                else
                {
                    var cart = new CartModel().GetCart(userInDb.Username, id);
                    if (cart == null)
                    {
                        var cartt = new Cart();
                        cartt.Username  = userInDb.Username;
                        cartt.ProductId = pro.ProductId;
                        if (new CartModel().AddCartToDb(cartt, 1))
                        {
                            return(Content("/Cart/Index"));
                        }
                    }
                    else
                    {
                        if (new CartModel().AddCartToDb(cart, 1))
                        {
                            return(Content("/Cart/Index"));
                        }
                    }
                }
            }
            return(Content("/Cart/Index"));
        }
Esempio n. 19
0
        public IEnumerable <Order> GetOrderBySeller(User_Accounts acc)
        {
            var listOrder = new List <Order>();
            //lấy danh sách sp của seller
            var listProduct = new ProductModel().GetProductBySeller(acc);

            //Tương ứng mỗi sp, tìm order có proId trùng với Id sản phẩm, nếu có thì lưu vào listOrder
            foreach (var product in listProduct)
            {
                var list = new OrderModel().GetOrderByProduct(product);
                if (list != null)
                {
                    foreach (var order in list)
                    {
                        listOrder.Add(order);
                    }
                }
            }
            return(listOrder);
        }
        public PartialViewResult BagCart()
        {
            int           item     = 0;
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;

            if (userInDb == null)
            {
                CartModel cart = Session["Cart"] as CartModel;
                if (cart != null)
                {
                    item = cart.TotalAmountInCart();
                }
                ViewBag.numOfCart = item;
            }
            else
            {
                item = new CartModel().TotalAmountCartInDB(userInDb.Username);
                ViewBag.numOfCart = item;
            }
            return(PartialView("BagCart"));
        }
        public ActionResult UpdateAmountCard(FormCollection form)
        {
            User_Accounts userInDb = HttpContext.Session["user"] as User_Accounts;

            if (userInDb == null)
            {
                CartModel cart   = Session["Cart"] as CartModel;
                int       proId  = int.Parse(form["ProductId"]);
                int       amount = int.Parse(form["Amount"]);
                cart.UpdateAmount(proId, amount);
                return(RedirectToAction("Index", "Cart"));
            }
            else
            {
                var cart = new CartModel().GetCart(userInDb.Username, int.Parse(form["ProductId"]));
                if (new CartModel().UpdateAmountInCart(cart, int.Parse(form["Amount"])))
                {
                    return(RedirectToAction("Index", "Cart"));
                }
                return(RedirectToAction("Index", "Cart"));
            }
        }
        //phương thức thực thi khi action được gọi
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            User_Accounts tbus = HttpContext.Current.Session["user"] as User_Accounts;

            //nếu session=null thì trả về trang đăng nhập
            if (tbus == null)
            {
                filterContext.Result = new RedirectResult("~/Login/Index");
            }
            //session != null
            else
            {
                List <string> permission = new List <string>();
                switch (tbus.Type)
                {
                case 1:
                    permission.Add("Admin");
                    break;

                case 2:
                case 3:
                    permission.Add("Seller");
                    permission.Add("Customer");
                    break;
                }
                //Lấy tên controller và action
                //string actionName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName + "-" + filterContext.ActionDescriptor.ActionName;

                //Lấy tên Controller
                string ControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
                //nếu tên controler không có trong mảng quyền của user thì trả về trang đăng nhập
                if (!permission.Contains(ControllerName))
                {
                    filterContext.Result = new RedirectResult("~/Login/Index");
                }
            }
        }
Esempio n. 23
0
 public List <Products_Detail> GetProductBySeller(User_Accounts seller)
 {
     return(_context.Products_Detail.Where(x => x.Seller == seller.Username).ToList());
 }
Esempio n. 24
0
        //
        //Method that will kick back list that contains the account name and balance
        //for each account for current User
        public async Task GetAccountList()
        {
            if (_accesstoken is null)
            {
                this.GetAccessToken();
            }

            if (client.BaseAddress is null)
            {
                client.BaseAddress = new Uri(_baseurl);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            }

            decimal _NetWorth    = 0;
            decimal _Assets      = 0;
            decimal _Liabilities = 0;

            foreach (var token in _accesstokenlist)
            {
                HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/accounts/get");

                string data = String.Format("{{ \"client_id\":\"{0}\" , \"secret\":\"{1}\" , \"access_token\":\"{2}\" }}", _clientid, _secret, token.access_token);
                request.Content = new StringContent(data, Encoding.UTF8, "application/json");

                var result   = client.SendAsync(request).Result;
                var contents = result.Content.ReadAsStringAsync().Result;
                var obj      = JObject.Parse(contents);

                try
                {
                    //check for auth error and add to list of auth tokens to be reauthenticated with Plaid
                    if (((string)obj["error_code"]).Equals("ITEM_LOGIN_REQUIRED"))
                    {
                        _reauthtoken.Add(token);
                        continue;
                    }
                }
                catch
                {
                    //parse the JSON object extract account data to memory and persist to database
                    using (var context = new PersonalFinanceAppEntities())
                    {
                        foreach (var account in obj["accounts"])
                        {
                            User_Accounts accounts_db = new User_Accounts
                            {
                                AccountID        = (string)account["account_id"],
                                AccountName      = (string)account["official_name"],
                                Balance          = (decimal)account["balances"]["current"],
                                Institution_name = token.institution_name,
                                Account_Type     = (string)account["type"],
                                Access_Token     = token.access_token
                            };

                            //Stored procedure to update account balance in DB with matching account ID.
                            context.Update_AccountBalance(accounts_db.AccountID, accounts_db.Balance);
                            await context.SaveChangesAsync();

                            _account_list.Add(accounts_db);

                            Has_accounts = true;

                            if (accounts_db.Account_Type.Equals("mortgage"))
                            {
                                continue;
                            }
                            else if (accounts_db.Account_Type.Equals("credit") || accounts_db.Account_Type.Equals("loan"))
                            {
                                _Liabilities += (decimal)accounts_db.Balance;
                                _NetWorth    -= (decimal)accounts_db.Balance;
                            }
                            else
                            {
                                _Assets   += (decimal)accounts_db.Balance;
                                _NetWorth += (decimal)accounts_db.Balance;
                            }
                        }
                    }
                }
            }

            if (_reauthtoken.Count != 0)
            {
                PublicTokenExchange(_reauthtoken);
            }

            else
            {
                Assets      = String.Format("{0:C}", _Assets);
                Liabilities = String.Format("{0:C}", _Liabilities);
                NetWorth    = String.Format("{0:C}", _NetWorth);

                var accountquery = from db in _account_list
                                   group db by db.Account_Type into g
                                   select new
                {
                    Type = g.Distinct(),
                    Sum  = g.Sum(s => s.Balance)
                };

                foreach (var type in accountquery)
                {
                    AccountType aAccountType = new AccountType
                    {
                        Accounttype     = type.Type.FirstOrDefault().Account_Type.ToString(),
                        Accounttype_sum = String.Format("{0:C}", type.Sum)
                    };

                    AccountTypeList.Add(aAccountType);
                }

                var institutionquery = from db in _account_list
                                       group db by db.Institution_name into g
                                       select new
                {
                    Name = g.Distinct(),
                    Sum  = g.Sum(s => s.Balance)
                };
                foreach (var inst in institutionquery)
                {
                    Institution aInstitution = new Institution
                    {
                        Inst_name    = inst.Name.FirstOrDefault().Institution_name.ToString(),
                        Inst_balance = String.Format("{0:C}", inst.Sum),
                        Inst_access  = inst.Name.FirstOrDefault().Access_Token.ToString()
                    };

                    InstitutionList.Add(aInstitution);
                }
            }
        }
Esempio n. 25
0
 public bool DeleteAccount(string Username)
 {
     try
     {
         User_Accounts user = _context.User_Accounts.Where(x => x.Username == Username).Single();
         if (user.Type == 1)
         {
             _context.User_Accounts.Remove(user);
             _context.SaveChanges();
             return(true);
         }
         foreach (var u in _context.Orders_Detail)
         {
             if (u.Customer == Username)
             {
                 foreach (var x in _context.Orders)
                 {
                     if (x.Orders_Detail == u.OrderDetailId)
                     {
                         _context.Orders.Remove(x);
                     }
                 }
                 _context.Orders_Detail.Remove(u);
             }
         }
         foreach (var u in _context.Carts)
         {
             if (u.Username == Username)
             {
                 _context.Carts.Remove(u);
             }
         }
         foreach (var u in _context.Products_Detail)
         {
             if (u.Seller == Username)
             {
                 foreach (var n in _context.Carts)
                 {
                     if (n.ProductId == u.ProductId)
                     {
                         _context.Carts.Remove(n);
                     }
                 }
                 foreach (var m in _context.Orders)
                 {
                     if (m.ProductId == u.ProductId)
                     {
                         _context.Orders.Remove(m);
                     }
                 }
                 _context.Products_Detail.Remove(u);
             }
         }
         _context.User_Accounts.Remove(user);
         _context.SaveChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }