Ejemplo n.º 1
0
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here
                //Product c = new Product();
                //產生一個Product物件
                Product P = new Product();
                //將上面的collection帶入就是傳進來的 collection["這是網頁上的name"]
                //型別的部分滑鼠移過去就可以看到要轉什麼型別
                P.ProductName = Convert.ToString(collection["ProductName"]);
                P.Price       = Convert.ToDecimal(collection["Price"]);
                P.Active      = true;
                P.Stock       = Convert.ToDecimal(collection["Stock"]);

                var db = new FabricsEntities();
                db.Product.Add(P);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Ejemplo n.º 2
0
        // GET: CRUD/Delete/5
        public ActionResult Delete(int id)
        {
            var db = new FabricsEntities();

            var client = db.Client.Find(id);

            if (client != null)
            {
                foreach (var item in client.Order.ToList())
                {
                    db.OrderLine.RemoveRange(item.OrderLine.ToList());
                }

                db.Order.RemoveRange(client.Order.ToList());

                db.Client.Remove(client);

                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 3
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            FabricsEntities db         = new FabricsEntities();
            var             items      = new List <SelectListItem>();
            var             price_list = (from p in db.Product
                                          select new
            {
                value = p.Price,
                Text = p.Price
            }).Distinct().OrderBy(p => p.value);

            filterContext.Controller.ViewBag.Price = new SelectList(price_list, "Value", "Text");
        }
Ejemplo n.º 4
0
        public ActionResult BatchUpdate()
        {
            var db   = new FabricsEntities();
            var data = db.Product.Where(p => p.ProductName.StartsWith("C"));

            foreach (var item in data)
            {
                item.Price = item.Price * 2;
            }
            db.SaveChanges();
            //return View();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 5
0
        public ActionResult PriceUp()
        {
            var db = new FabricsEntities();

            //foreach (var item in db.Product)
            //{
            //    item.Price += 1;
            //}
            //db.SaveChanges();

            db.Database.ExecuteSqlCommand("UPDATE dbo.Product SET Price=Price+1");

            return(RedirectToAction("Top10"));
        }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var db = new FabricsEntities();

            var prices = db.Product.AsEnumerable()
                         .Select(p => new
            {
                Text  = string.Format("{0:C}", p.Price),
                Value = p.Price
            })
                         .Distinct()
                         .OrderBy(p => p.Value);

            filterContext.Controller.ViewData["Price"] = new SelectList(prices, "Value", "Text");
        }
Ejemplo n.º 7
0
        // GET: CRUD
        public ActionResult Index()
        {
            var db = new FabricsEntities();
            //var data = db.Product.Where(p => p.ProductName.StartsWith("C")&p.Price>=5&p.Price<=10);
            //var data = db.Product;

            //var data = db.Database.ExecuteSqlCommand("select * from Product"); 有錯
            //最原始的做出sql,帶有回傳型別
            var data = db.Database.SqlQuery <Product>("select * from Product").AsQueryable();

            //預存程序做法,但回傳型別要注意,可去模型瀏覽器將預存程序回傳的型別做修正,因為是強型別
            //db.QueryProduct().AsQueryable();

            return(View(data));
        }
Ejemplo n.º 8
0
        public ActionResult ArrayBinding()
        {
            FabricsEntities db = new FabricsEntities();

            var data = from client
                       in db.Clients
                       select new DemoViewModel()
            {
                UserName = client.FirstName,
                Password = client.LastName,
                Confirm  = client.LastName,
                UserAge  = 20
            };

            return(View(data.Take(5)));
        }
Ejemplo n.º 9
0
        public string TestInsert()
        {
            var db = new FabricsEntities();

            var product = new Product()
            {
                ProductName = "Entity",
                Price       = 99,
                Stock       = 10,
                Active      = true
            };

            db.Product.Add(product);

            repo.UnitOfWork.Commit();

            return("OK: " + product.ProductId);
        }
Ejemplo n.º 10
0
        public ActionResult BatchUpdate()
        {
            var db   = new FabricsEntities();
            var data = db.Product.Where(p => p.ProductName.StartsWith("A"));

            foreach (var item in data)
            {
                item.Price = item.Price * 2;
            }

            try
            {
                db.SaveChanges();
            }
            catch (DbEntityValidationException ex)
            {
                throw ex;
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 11
0
        public ActionResult Top10()
        {
            var db = new FabricsEntities();

            var result = db.Product.Take(10);

            // LINQ ( C# 3.0 )
            //var data = "SELECT * FROM table WHERE ...";
            //var data = from p in result
            //           select new ProductCreationVM()
            //           {
            //               ProductId = p.ProductId,
            //               ProductName = p.ProductName,
            //               Price = p.Price,
            //               OrderLineCount = p.OrderLine.Count()
            //           };

            var data = db.Database.SqlQuery <ProductCreationVM>(
                "SELECT TOP 10 *, OrderLineCount=(SELECT COUNT(*) FROM dbo.OrderLine o WHERE o.ProductId=p.ProductId) FROM dbo.Product p");

            return(View(data));
        }
Ejemplo n.º 12
0
        // GET: CRUD
        public ActionResult Index(string keyword)
        {
            List <SelectListItem> items = new List <SelectListItem>();

            items.Add(new SelectListItem {
                Text = "A", Value = "A"
            });
            items.Add(new SelectListItem {
                Text = "B", Value = "B"
            });
            items.Add(new SelectListItem {
                Text = "C", Value = "C", Selected = true
            });

            ViewBag.ProductNameStartsWith = items;
            //&& p.ProductName.StartsWith()

            var db   = new FabricsEntities();
            var data = db.Product.Where(p => p.ProductName.StartsWith(keyword));

            return(View(data));
        }
Ejemplo n.º 13
0
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                var db = new FabricsEntities();

                var product = new Product();

                product.ProductName = collection["ProductName"];
                product.Price       = Convert.ToDecimal(collection["Price"]);
                product.Stock       = Convert.ToDecimal(collection["Stock"]);
                product.Active      = true;

                db.Product.Add(product);
                db.SaveChanges();
                // TODO: Add insert logic here

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Ejemplo n.º 14
0
        // GET: CRUD/Delete/5
        public ActionResult Delete(int id)
        {
            var db = new FabricsEntities();
            //找到要刪除的id
            var client = db.Client.Find(id);

            //foreach先找到這資料表最後一個關聯性先找最後一筆做刪除
            foreach (var order in client.Order.ToList())
            {
                //找到order的關聯orderLine做刪除
                db.OrderLine.RemoveRange(order.OrderLine);
            }
            //再將order中與這個client有關連到的做移除
            db.Order.RemoveRange(client.Order.ToList());
            //將選擇的id做移除
            db.Client.Remove(client);
            //做交易處理正式嘗試移除
            db.SaveChanges();



            //return View();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 15
0
 public ProductRepository()
 {
     this.db = new FabricsEntities();
     db.Configuration.LazyLoadingEnabled = false;
 }
Ejemplo n.º 16
0
        static void Main(string[] args)
        {
            //CreateSampleData();
            //for (int i = 0; i < 100; i++)
            //{
            using (var fabrics = new FabricsEntities())
            {
                using (var nw = new northwindEntities())
                {
                    var fabricProducts = from fp in fabrics.Products
                                         select fp;
                    var nwCategoriesList = (from c in nw.Categories
                                            select c).ToList();

                    using (var ngmd = new ProductsContext())
                    {
                        var rnd = new Random();

                        foreach (var product in fabricProducts)
                        {
                            var imageNumber = rnd.Next(0, 16);
                            var ngArticle   = new Article
                            {
                                Id          = Guid.NewGuid(),
                                Name        = product.ProductName,
                                Code        = product.Price.ToString(),
                                Description =
                                    "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
                                ImageUrl = String.Format("{0}.jpg", imageNumber)
                            };

                            Category cat;
                            var      catRnd       = new Random();
                            var      productCat   = nwCategoriesList[catRnd.Next(0, 8)];
                            var      productCatId = productCat.CategoryID;

                            if (categoryStore.ContainsKey(productCatId))
                            {
                                cat = categoryStore[productCatId];
                                ngmd.Entry(cat).State = EntityState.Unchanged;
                            }
                            else
                            {
                                var guid = Guid.NewGuid();
                                cat = new Category
                                {
                                    Name        = productCat.CategoryName,
                                    Description = productCat.Description,
                                    Id          = guid
                                };
                                categoryStore.Add(productCatId, cat);
                                ngmd.Categories.Add(cat);

                                ngmd.SaveChanges();
                            }

                            ngArticle.Category = cat;

                            ngmd.Articles.Add(ngArticle);

                            ngmd.SaveChanges();
                        }
                    }
                }
                //}
            }
        }