Exemple #1
0
        //catName dolazi iz Ajax
        public string AddNewCategory(string catName)
        {
            //Deklarisati id
            string id;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //proveriti da li je category ime jedinstveno
                if (db.Categories.Any(x => x.Name == catName))
                {
                    return("titletaken");
                }
                //inicijalizovati DTO
                CategoriesDTO dto = new CategoriesDTO();
                //Dodati u DTO
                dto.Name = catName;
                dto.Slug = catName.Replace(" ", "-").ToLower();
                //ista logika kao i za pageove kada se doda kategorija bice poslednja
                dto.Sorting = 100;
                //sacuvati DTO
                db.Categories.Add(dto);
                db.SaveChanges();
                //uzeti ubaceni id
                id = dto.Id.ToString();
            }
            //vratiti taj id
            return(id);
        }
        //Get: cart/DecrementProduct
        public JsonResult DecrementProduct(int productId)
        {
            //inicijalizovati cart listu
            List <CartVM> listCart = Session["cart"] as List <CartVM>;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //pronaci cartVm koristeci productId
                CartVM model = listCart.FirstOrDefault(x => x.ProductId == productId);
                //dekrementovati kolicinu
                if (model.Quantity > 1)
                {
                    model.Quantity--;
                }
                else
                {
                    model.Quantity = 0;
                    listCart.Remove(model);
                }

                //sacuvati quantity i price
                var resault = new { quantity = model.Quantity, price = model.Price };
                //vratiti json sa podacima
                return(Json(resault, JsonRequestBehavior.AllowGet));
            }
        }
Exemple #3
0
        //Get: Admin/Shop/Products
        public ActionResult Products(int?page, int?catId)
        {
            //Deklarisati listu ProductVM
            List <ProductsVM> listOfProductVM;
            //Postaviti broj stranice
            //Ukoliko nije ni jedna stranica prosla kroz query postavi kao prvu stranicu
            var pageNumber = page ?? 1;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Inicijalizovati listu
                listOfProductVM = db.Products.ToArray().Where(x => catId == null || catId == 0 || x.CategoryId == catId).Select(x => new ProductsVM(x)).ToList();
                //Napuniti categories slelected list
                //koristicemo ViewBag posto necemo prikazivati svaki model u listi
                ViewBag.Categories = new SelectList(db.Categories.ToList(), "Id", "Name");

                //postaviti izabranu kategoriju
                ViewBag.SelectedCategory = catId.ToString();
            }

            //postaviti obelezavanje stranica
            //prikazivace 25 itema po stranici(ne zaboravi da setujes na 25 postavio si na 2 zbog provere)
            var onePageOfProducts = listOfProductVM.ToPagedList(pageNumber, 25);


            ViewBag.OnePageOfProducts = onePageOfProducts;


            //vratiti View sa modelom
            return(View(listOfProductVM));
        }
Exemple #4
0
        public ActionResult EditProduct(int id)
        {
            //deklarisanje productVM-a
            ProductsVM model;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //pronaci product
                ProductsDTO dto = db.Products.Find(id);
                //proveriti da li postoji
                if (dto == null)
                {
                    return(Content("This item doesn't exists"));
                }
                //inicijalizovati model
                model = new ProductsVM(dto);
                //napraviti select listu
                model.Categories = new SelectList(db.Categories.ToList(), "Id", "Name");
                //uzeti sve slike iz glaerije
                model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Products/" + id + "/Gallery/Thumbs")).Select(x => Path.GetFileName(x));
            }


            //vratit view sa modelom
            return(View(model));
        }
Exemple #5
0
        public async Task CreateNewShoppingCart()
        {
            ShoppingCartDB cartDB = ShoppingCartDB.Create(configuration);
            string         cartID = await cartDB.CreateShoppingCart();

            Assert.Pass();
        }
        protected void Application_AuthenticateRequest()
        {
            //proveriti da li je korisnik logovan
            if (User == null)
            {
                return;
            }

            //pronaci username
            string username = Context.User.Identity.Name;

            //deklarisati array rols
            string[] roles = null;
            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //napuniti array roles
                UserDTO dto = db.Users.FirstOrDefault(x => x.Username == username);
                //izabrati koji je naziv rola
                roles = db.UserRoles.Where(x => x.UserId == dto.Id).Select(x => x.Role.Roles).ToArray();
            }
            //izgraditi IPrincipal obj
            IIdentity userIdentity = new GenericIdentity(username);

            IPrincipal newUserObject = new GenericPrincipal(userIdentity, roles);

            //Update-ovati Context.User
            Context.User = newUserObject;
        }
Exemple #7
0
        public ActionResult Login(LoginUserVM model)
        {
            //Proveriti model state
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            //proveriti da li je korisnik validan
            bool isValidUser = false;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                if (db.Users.Any(x => x.Username.Equals(model.Username) && x.Password.Equals(model.Password)))
                {
                    isValidUser = true;
                }
            }

            if (!isValidUser)
            {
                ModelState.AddModelError("", "Username or password is incorect!");
                return(View(model));
            }
            else
            {
                //pravljenje cookia(Session)
                FormsAuthentication.SetAuthCookie(model.Username, model.Remember);
                return(Redirect(FormsAuthentication.GetRedirectUrl(model.Username, model.Remember)));
            }
        }
        // 선택 합계 구하기(옵션)
        protected void SelectedTotal(object sender, EventArgs e)
        {
            // 그리드뷰의 아이템 개수만큼 반복
            for (int i = 0; i < ctlShoppingCartList.Rows.Count; i++)
            {
                // 선택 체크박스 값 가져오기
                if (((CheckBox)ctlShoppingCartList.Rows[i].FindControl("Select")).Checked)
                {
                    // 수량에 대한 SubTotal
                    quantitySelectedTotal += Convert.ToInt32(((TextBox)ctlShoppingCartList.Rows[i].FindControl("Quantity")).Text);
                    // 가격에 대한 SubTotal
                    priceSelectedTotal += Convert.ToInt32(ctlShoppingCartList.Rows[i].Cells[5].Text.Replace(",", String.Empty));
                    // 소계에 대한 SubTotal
                    extendedSelectedAmountTotal += Convert.ToInt32(ctlShoppingCartList.Rows[i].Cells[6].Text.Replace(",", ""));
                }
            }//end for
            this.lblQuantitySelectedTotal.Text       = quantitySelectedTotal.ToString();
            this.lblPriceSelectedTotal.Text          = priceSelectedTotal.ToString();
            this.lblExtendedSelectedAmountTotal.Text = extendedSelectedAmountTotal.ToString();
            // 총합
            // 쇼핑카트 인스턴스 생성
            ShoppingCartDB cart = new ShoppingCartDB();
            // 고유 키 값 생성
            string cartId = cart.GetShoppingCartId();

            // 총합
            lblTotal.Text = String.Format("{0:###,###}", cart.GetTotal(cartId));
        }
        public ActionResult ProductDetails(string name)
        {
            //Deklarisati VM i DTO
            ProductsVM  model;
            ProductsDTO dto;

            //Inicijalizovati ProductsId
            int id = 0;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Proveriti da li postoji product
                if (!db.Products.Any(x => x.Slug.Equals(name)))
                {
                    RedirectToAction("Index", "Shop");
                }
                //inicijalizovati DTO
                dto = db.Products.Where(x => x.Slug == name).FirstOrDefault();
                //Uzeti  id
                id = dto.Id;
                //inicijalizovati model
                model = new ProductsVM(dto);
            }

            //Pronaci slike
            //uzeti sve slike iz glaerije
            model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Products/" + id + "/Gallery/Thumbs")).Select(x => Path.GetFileName(x));

            //vratiti View sa modelom
            return(View("ProductDetails", model));
        }
Exemple #10
0
        public ActionResult UserProfile(UserProfileVM model)
        {
            //Proveriti stanje modela
            if (!ModelState.IsValid)
            {
                return(View("UserProfile", model));
            }

            //proveriti da lis e passwordi podudaraju

            if (!string.IsNullOrEmpty(model.Password))
            {
                if (!model.Password.Equals(model.ConfirmPassword))
                {
                    ModelState.AddModelError("", "Password and Confirm Password fields doesn't match");
                    return(View("UserProfile", model));
                }
            }



            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //pronaci username
                string username = User.Identity.Name;
                //proveriti da li je jedinstven username
                if (db.Users.Where(x => x.Id != model.Id).Any(x => x.Username == username))
                {
                    ModelState.AddModelError("", "That Username is taken!");
                    model.Username = "";
                    return(View("UserProfile", model));
                }

                //Editovati DTO
                UserDTO dto = db.Users.Find(model.Id);
                dto.FirstName = model.FirstName;
                dto.LastName  = model.LastName;
                dto.Username  = model.Username;
                dto.Email     = model.Email;

                if (!string.IsNullOrEmpty(model.Password))
                {
                    dto.Password = model.Password;
                }

                //Sacuvati DTO
                db.SaveChanges();
            }
            //postaviti TempData poruku
            TempData["SM"] = "You successfully edited your profile";
            //Redirektovati
            return(Redirect("~/account/user-profile"));
        }
        public void PlaceOrder()
        {
            //uzeti cart listu
            List <CartVM> listCart = Session["cart"] as List <CartVM>;
            //pronaci username
            string username = User.Identity.Name;
            //inicijalizovati orderId
            int orderID = 0;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //inicijalizovati OrdersDTO
                OrdersDTO ordersDTO = new OrdersDTO();
                //Pronaci UserId
                var query  = db.Users.FirstOrDefault(x => x.Username == username);
                int userId = query.Id;
                //dodati u OrdersDTO i sacuvati
                ordersDTO.UserID    = userId;
                ordersDTO.CreatedAt = DateTime.Now;

                db.Orders.Add(ordersDTO);

                db.SaveChanges();
                //Pronaci ubaceni id
                orderID = ordersDTO.OrderID;
                //inicijalizovati OrderDetailsDTO
                OrderDetailsDTO orderDetailsDTO = new OrderDetailsDTO();
                //dodati u OrderDetailsDTO
                foreach (var item in listCart)
                {
                    orderDetailsDTO.OrderID   = orderID;
                    orderDetailsDTO.UserID    = userId;
                    orderDetailsDTO.ProductID = item.ProductId;
                    orderDetailsDTO.Quantity  = item.Quantity;

                    db.OrderDetails.Add(orderDetailsDTO);
                    db.SaveChanges();
                }
            }

            //poslati email admin-u
            var client = new SmtpClient("smtp.mailtrap.io", 2525)
            {
                Credentials = new NetworkCredential("600ce557b90f2a", "bdc3aca380f02f"),
                EnableSsl   = true
            };

            client.Send("*****@*****.**", "*****@*****.**", "New Order", "You have a new order, order number is : " + orderID);
            Console.WriteLine("Sent");
            //resetovati ssesion
            Session["cart"] = null;
        }
Exemple #12
0
        protected void btnLogin_Click(object sender, System.EventArgs e)
        {
            // 오래된 쇼핑카트 아이디 저장
            ShoppingCartDB shoppingCart = new ShoppingCartDB();
            string         tempCartID   = shoppingCart.GetShoppingCartId();

            // 로그인 정보가 맞는지 확인
            CustomersDB accountSystem = new CustomersDB();
            // 로그인이 정상적으로 진행되면 고객번호 : 1번 고객, 2번 고객
            string customerId = accountSystem.Login(txtUserID.Text, Security.Encrypt(txtPassword.Text));

            if (customerId != null)
            {
                // 현재 쇼핑카트 정보를 고객 정보로 마이그레이트
                shoppingCart.MigrateCart(tempCartID, customerId);

                // 고객의 모든 정보 값 반환
                CustomerDetails customerDetails = accountSystem.GetCustomerDetails(customerId);

                // 고객의 이름을 쿠키에 저장
                // Response.Cookies["Shopping_CustomerName"].Value = customerDetails.CustomerName;
                HttpCookie customerName = new HttpCookie("Shopping_CustomerName", Server.UrlEncode(customerDetails.CustomerName));
                customerName.HttpOnly = true;
                Response.Cookies.Add(customerName);

                // 고객의 이이디를 쿠키에 저장
                Response.Cookies["Shopping_UserID"].Value = customerDetails.UserID;

                // 고객 이름 저장 체크박스 확인
                if (chkRememberLogin.Checked == true)
                {
                    // 앞으로 한달간 저장
                    Response.Cookies["Shopping_CustomerName"].Expires = DateTime.Now.AddMonths(1);
                }

                // 원래 요청했었던 페이지로 이동
                if (Request.ServerVariables["SCRIPT_NAME"].ToLower().EndsWith("checklogin.aspx"))
                {
                    System.Web.Security.FormsAuthentication.SetAuthCookie(customerId, chkRememberLogin.Checked); // 인증값 부여
                    Response.Redirect("CheckOut.aspx");                                                          // 현재 페이지가 로그인 체크 페이지면 주문서 페이지로 이동
                }
                else
                {
                    // 따로 지정하지 않았으면 기본값으로 ~/Default.aspx로 이동
                    System.Web.Security.FormsAuthentication.RedirectFromLoginPage(customerId, chkRememberLogin.Checked);
                }
            }
            else
            {
                lblError.Text = "로그인에 실패했습니다. 다시 로그인하세요.";
            }
        }
        //Get: cart/RemoveProduct
        public void RemoveProduct(int productId)
        {
            //inicijalizovati cart listu
            List <CartVM> listCart = Session["cart"] as List <CartVM>;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //pronaci cartVm koristeci productId
                CartVM model = listCart.FirstOrDefault(x => x.ProductId == productId);
                //Ukloniti iz liste model
                listCart.Remove(model);
            }
        }
        //Partial view for Pages
        public ActionResult PagesMenuPartialView()
        {
            //Deklarisati listu pageVM
            List <PageVM> pageList;

            //Pronaci sve pageve osim home
            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                pageList = db.Pages.ToArray().OrderBy(x => x.Sorting).Where(x => x.Slug != "home").Select(x => new PageVM(x)).ToList();
            }
            //vratiti partial sa listom
            return(PartialView(pageList));
        }
Exemple #15
0
        public ActionResult AddProducts()
        {
            //Inicijalizuj model
            ProductsVM model = new ProductsVM();

            //Dodaj selectovanu listu kategorija modelu
            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                model.Categories = new SelectList(db.Categories.ToList(), "Id", "Name");
            }
            //Vratiti view sa modelom
            return(View(model));
        }
Exemple #16
0
        // GET: Admin/Shop/Categories
        public ActionResult Categories()
        {
            //Deklaracija liste category VM-a
            List <CategoriesVM> categoryVMList;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Pronadji sve kategorije na osnovu zadatog vm-a i sortiraj ih prema sortingu iz tabele
                categoryVMList = db.Categories.ToArray().OrderBy(x => x.Sorting).Select(x => new CategoriesVM(x)).ToList();
            };
            //vrati listu view-a
            return(View(categoryVMList));
        }
        public ActionResult AddPAge(PageVM model)
        {
            //Proveriti model
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Deklarisati Slug
                string slug;
                //Inicijalizacija DTO(Data transfer Object) PageDTO
                PageDTO dto = new PageDTO();
                //Koristiti da se doda vrednost za title u DTO
                dto.Title = model.Title;
                //Proveriti i dodati Slug ako je potrebno
                if (string.IsNullOrWhiteSpace(model.Slug))
                {
                    //Ukoliko je ostavljen white space ili nepostoji uzecemo title zameniti white space sa - i prebaciti u mala slova
                    slug = model.Title.Replace(" ", "-").ToLower();
                }
                else
                {
                    //Ukoliko ima nesto napiosano opet cemo prtazna polja zameniti sa - i prebaciti u mala slova
                    slug = model.Slug.Replace(" ", "-").ToLower();
                }
                //Pobrinuti se da su Title i Slug unikatni
                if (db.Pages.Any(x => x.Title == model.Title || db.Pages.Any(s => s.Slug == slug)))
                {
                    ModelState.AddModelError("", "That title or a slug already exists!");
                    return(View(model));
                }

                //Popuniti ostatak DTO-a
                dto.Slug       = slug;
                dto.Body       = model.Body;
                dto.HasSidebar = model.HasSidebar;
                //Ideja je da kada se doda nova stranica uvek bude zadnja(radunamo da nece biti vise od sto stranica napravljeno u isto vreme)
                dto.Sorting = 100;
                //Sacuvati DTO
                db.Pages.Add(dto);
                //Sacuvati u bazi podataka
                db.SaveChanges();
            }

            //Sacuvati privremenu poruku koja ostaje i posle requesta(za razliku od viewbage koji je bas privremen nestaje posle requesta),ovde koristimo da bi ostao i da bi smo mogli da ga dodamo u view
            TempData["SM"] = "You succesfully added a new page";
            //Redirektiovati na add page koji je onaj gore get
            return(RedirectToAction("AddPAge"));
        }
Exemple #18
0
        public ActionResult CreateAccount(UserVM model)
        {
            //proveriti stanje modela
            if (!ModelState.IsValid)
            {
                return(View("CreateAccount", model));
            }
            //proveriti da li se slazu passwordi
            if (!model.Password.Equals(model.ConfirmPassword))
            {
                ModelState.AddModelError("", "Password and Confirm Password doesn't match!");
                return(View("CreateAccount", model));
            }
            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //proveriti da li je username unikatan
                if (db.Users.Any(x => x.Username.Equals(model.Username)))
                {
                    ModelState.AddModelError("", "Username is taken");
                    model.Username = "";
                    return(View("CreateAccount", model));
                }
                //napraviti userDTO
                UserDTO dto = new UserDTO()
                {
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    Email     = model.Email,
                    Username  = model.Username,
                    Password  = model.Password
                };
                //dodati dto
                db.Users.Add(dto);
                //sacuvati
                db.SaveChanges();
                //dodati u UserRolesDTO
                int id = dto.Id;

                UserRolesDTO userRolesDTO = new UserRolesDTO()
                {
                    UserId = id,
                    RoleID = 2
                };
                db.UserRoles.Add(userRolesDTO);
                db.SaveChanges();
            }
            //napraviti temp poruku
            TempData["SM"] = "You succesfully registrated!";
            //redirektovati
            return(Redirect("~/account/login"));
        }
        public ActionResult EditPage(PageVM model)
        {
            //Proveriti da li postoji model
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Pronaci page id
                int id = model.Id;
                //Inicijalizovati slug
                string slug = "home";
                //Pronaci page
                PageDTO page = db.Pages.Find(id);
                //DTO title
                page.Title = model.Title;
                //Proveriti da li je popunjen slug i postaviti ga ukoliko je potrebno
                if (model.Slug != "home")
                {
                    if (string.IsNullOrWhiteSpace(model.Slug))
                    {
                        slug = model.Title.Replace(" ", "-").ToLower();
                    }
                    else
                    {
                        slug = model.Slug.Replace(" ", "-").ToLower();
                    }
                }
                //Proveriti da li su Title i Slug unikatni
                if (db.Pages.Where(x => x.Id != id).Any(x => x.Title == model.Title) ||
                    db.Pages.Where(x => x.Id != id).Any(x => x.Slug == slug))
                {
                    ModelState.AddModelError("", "Title or Slug already exists!!!");
                    return(View(model));
                }
                //DTO ostatak
                page.Slug       = slug;
                page.Body       = model.Body;
                page.HasSidebar = model.HasSidebar;

                //Sacuvati DTO
                db.SaveChanges();
            }
            //Postaviti TempData poruku
            TempData["SM"] = "You have edited page!";

            //Redirektovati
            return(RedirectToAction("EditPage"));
        }
Exemple #20
0
        //Get: Admin/Shop/Orders
        public ActionResult Orders()
        {
            //inicijalizovati listu OrdersForAdminVM
            List <OrdersForAdminVm> orderAdmin = new List <OrdersForAdminVm>();

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Inicijalizovati listu OrdersVM
                List <OrderVm> orders = db.Orders.ToArray().Select(x => new OrderVm(x)).ToList();

                //proci kroz listu OrderVM
                foreach (var item in orders)
                {
                    //inicijalizovati Dictionay
                    Dictionary <string, int> productsAndQuantity = new Dictionary <string, int>();
                    //deklarisati total i inicijalizovati
                    decimal total = 0m;
                    //inicijalizovati listu OrderDetailsDTO
                    List <OrderDetailsDTO> orderDetails = db.OrderDetails.Where(x => x.OrderID == item.OrderID).ToList();
                    //pronaci Username
                    UserDTO user     = db.Users.Where(x => x.Id == item.UserID).FirstOrDefault();
                    string  username = user.Username;
                    //proci kroz listu
                    foreach (var order in orderDetails)
                    {
                        //uzeti product
                        ProductsDTO product = db.Products.Where(x => x.Id == order.OrderID).FirstOrDefault();
                        //uzeti cenu producta
                        decimal price = product.Price;
                        //uzeti ime producta
                        string productName = product.Name;
                        //dodati u Dictionary
                        productsAndQuantity.Add(productName, order.Quantity);
                        //pronaci total
                        total += price * order.Quantity;
                    }
                    //Dodati u listu orderAdmin
                    orderAdmin.Add(new OrdersForAdminVm()
                    {
                        OrderNumber         = item.OrderID,
                        Username            = username,
                        Total               = total,
                        ProductsAndQuantity = productsAndQuantity,
                        CreatedAt           = item.CreatedAt
                    });
                }
            }

            //vratiti view sa orderAdmin listom
            return(View(orderAdmin));
        }
Exemple #21
0
 //Get: Admin/Shop/DeleteCategory/id
 public ActionResult DeleteCategory(int id)
 {
     using (ShoppingCartDB db = new ShoppingCartDB())
     {
         //Pronaci Category sa id-om u bazi
         CategoriesDTO dto = db.Categories.Find(id);
         //Ukloniti taj Category
         db.Categories.Remove(dto);
         //Sacuvati promene u bazi
         db.SaveChanges();
     }
     //Redirektovati na index
     return(RedirectToAction("Categories"));
 }
 //Get: Admin/Pages/DeletePage/id
 public ActionResult DeletePage(int id)
 {
     using (ShoppingCartDB db = new ShoppingCartDB())
     {
         //Pronaci page sa id-om u bazi
         PageDTO dto = db.Pages.Find(id);
         //Ukloniti taj page
         db.Pages.Remove(dto);
         //Sacuvati promene u bazi
         db.SaveChanges();
     }
     //Redirektovati na index
     return(RedirectToAction("Index"));
 }
        //Partial view for sidebar
        public ActionResult SidebarPartialView()
        {
            //Deklarisati model
            SidebarVM model;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Inicijalizovati model
                SidebarDTO dto = db.Sidebar.Find(1);
                model = new SidebarVM(dto);
            }
            //vratiti model sa view-om
            return(PartialView(model));
        }
        //partial view za Category
        public ActionResult CategoryMenuPartialView()
        {
            //Deklarisanje  modela
            List <CategoriesVM> categoryVmList;

            //Inicijalizacija modela
            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                categoryVmList = db.Categories.ToArray().OrderBy(x => x.Sorting).Select(x => new CategoriesVM(x)).ToList();
            }
            //Vrati partial view sa modelom


            return(PartialView(categoryVmList));
        }
        public ActionResult EditSidebar()
        {
            //Deklarisanje modela
            SidebarVM sidebar;

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Uzimanje DTO
                SidebarDTO dto = db.Sidebar.Find(1);
                //Inicijalizacija modela
                sidebar = new SidebarVM(dto);
            }
            //vratiti View sa modelom(sidebar)
            return(View(sidebar));
        }
Exemple #26
0
        public ActionResult Orders()
        {
            //Inicijalizovati listu OrderForUsersVM
            List <OrderForUsersVM> userOrders = new List <OrderForUsersVM>();

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //Pronaci user ID
                UserDTO user   = db.Users.Where(x => x.Username == User.Identity.Name).FirstOrDefault();
                int     userId = user.Id;
                //Inicijalizovati listu orderVm
                List <OrderVm> orders = db.Orders.Where(x => x.UserID == user.Id).ToArray().Select(x => new OrderVm(x)).ToList();
                //proci kroz listu
                foreach (var item in orders)
                {
                    //inicijalizovati Dictionary
                    Dictionary <string, int> productAndQuantity = new Dictionary <string, int>();
                    //Deklarisati total
                    decimal total = 0m;
                    //Inicijalizovati listu  OrderDetailsDTO
                    List <OrderDetailsDTO> orderDetails = db.OrderDetails.Where(x => x.OrderID == item.OrderID).ToList();
                    //Proci kroz listu
                    foreach (var order in orderDetails)
                    {
                        //Pronaci product
                        ProductsDTO dto = db.Products.Where(x => x.Id == order.ProductID).FirstOrDefault();
                        //Pronaci cenu producta
                        decimal price = dto.Price;
                        //pronaci Ime Producta
                        string productName = dto.Name;
                        //popuniti Dictionary
                        productAndQuantity.Add(productName, order.Quantity);
                        //Pronaci total
                        total += order.Quantity * price;
                    }
                    //Popuniti listu OrderForUsersVM
                    userOrders.Add(new OrderForUsersVM()
                    {
                        OrderNumber         = item.OrderID,
                        Total               = total,
                        ProductsAndQuantity = productAndQuantity,
                        CreatedAt           = item.CreatedAt
                    });
                }
            }
            //vratiti view sa listom OrderForUsersV
            return(View(userOrders));
        }
        //partial view za dodavanje u cart
        public ActionResult AddToCartPartialView(int id)
        {
            //inicijalizovati listu CartVM
            List <CartVM> cartVmList = Session["cart"] as List <CartVM> ?? new List <CartVM>();
            //inicijalizovati model CartVM
            CartVM model = new CartVM();

            using (ShoppingCartDB db = new ShoppingCartDB())
            {
                //uzeti product
                ProductsDTO dto = db.Products.Find(id);
                //proveriti da li se product nalazi vec u cart-u
                var productInCart = cartVmList.FirstOrDefault(x => x.ProductId == id);
                if (productInCart == null)
                {
                    //Ukoliko se ne nalazi dodati novi
                    cartVmList.Add(new CartVM()
                    {
                        ProductId   = dto.Id,
                        ProductName = dto.Name,
                        Price       = dto.Price,
                        Quantity    = 1,
                        Image       = dto.ImageName
                    });
                }
                else
                {
                    //Ukoliko postoji incrementovati
                    productInCart.Quantity++;
                }
            }

            //pronaci total i dodati u model
            int     qty   = 0;
            decimal price = 0m;

            foreach (var item in cartVmList)
            {
                qty   += item.Quantity;
                price += item.Price * item.Quantity;
            }
            model.Quantity = qty;
            model.Price    = price;
            //sacuvati cart nazad u session
            Session["cart"] = cartVmList;
            //vratiti partial view sa modelom
            return(PartialView(model));
        }
 public ActionResult EditSidebar(SidebarVM model)
 {
     using (ShoppingCartDB db = new ShoppingCartDB())
     {
         //Uzmi DTO
         SidebarDTO dto = db.Sidebar.Find(1);
         //DTO body
         dto.Body = model.Body;
         //Sacuvaj
         db.SaveChanges();
     }
     //Postavi TempData poruku
     TempData["SM"] = "You succesfully edited a sidebar!!!";
     //Redirect
     return(RedirectToAction("EditSidebar"));
 }
Exemple #29
0
        public async Task AddItemToCart()
        {
            ShoppingCartDB cartDB = ShoppingCartDB.Create(configuration);
            await cartDB.AddItemToCart("5daa068dce0d256d805c7d7e", new VultPay.Domain.Models.Application.ShoppingCart.ShoppingCartItem
            {
                Id        = "1538DD28",
                Name      = "Bolsa Feminina",
                IsGift    = false,
                Quantity  = 1,
                UnitPrice = 10.0,
                Url       = "https://www.bobstore.com.br/produto/bolsa-saco-bicolor/A-sku4222879.O19C5A103?gclid=CjwKCAjwxaXtBRBbEiwAPqPxcKMsbV_6E7ycE4wD73BzJzoC15ZuiDUoffMltCLy5sGzjCzDUaSMPhoCmscQAvD_BwE",
                Thumb     = "https://d1xjvqax0h862y.cloudfront.net/BS/prod/O19C5A103/O19C5A103_B-54_product_1_698x970.jpg"
            });

            Assert.Pass();
        }
        /// <summary>
        /// 쇼핑카트 내용 업데이트
        /// </summary>
        private void UpdateShoppingCartDatabase()
        {
            // 쇼핑카트 객체 생성
            ShoppingCartDB cart = new ShoppingCartDB();

            // 고유 키 값 반환
            string cartId = cart.GetShoppingCartId();

            // 그리드뷰의 아이템 개수만큼 반복
            for (int i = 0; i < ctlShoppingCartList.Rows.Count; i++)
            {
                // 수량 텍스트박스 값 가져오기
                TextBox quantityTxt = (TextBox)ctlShoppingCartList.Rows[i].FindControl("Quantity");

                // 삭제 체크박스 값 가져오기
                CheckBox remove = (CheckBox)ctlShoppingCartList.Rows[i].FindControl("Remove");

                int quantity;
                try
                {
                    // 수량 값 가져오기
                    quantity = Int32.Parse(quantityTxt.Text);

                    // 원래 바인딩될 때의 수량과 현재 텍스트박스의 수량이 틀리고, 삭제 체크박스가 선택되어 있다면...
                    if (quantity != (int)ctlShoppingCartList.DataKeys[i].Value || remove.Checked == true)
                    {
                        // 해당 상품코드값 가져오기
                        Label lblProductID = (Label)ctlShoppingCartList.Rows[i].FindControl("ProductID");

                        // 수량이 0이거나 삭제가 체크되었다면, 삭제 로직 실행
                        if (quantity == 0 || remove.Checked == true)
                        {
                            cart.RemoveItem(cartId, Int32.Parse(lblProductID.Text));
                        }
                        else // 그렇지 않으면 업데이트 로직 실행
                        {
                            cart.UpdateItem(cartId, Int32.Parse(lblProductID.Text), quantity);
                        }
                    }
                }
                catch
                {
                    lblErrorMessage.Text = "고객님께서 입력하신 자료가 잘못되었습니다.";
                }
            } // end for
        }