示例#1
0
 public void MorphismIsFunction()
 {
     Assert.Throws <ArgumentException>(() => Morphism.Create(
                                           Product2.Create(1, true),
                                           Product2.Create(1, false)
                                           ));
 }
示例#2
0
 public void IsoMorphismHasUniqueInverse()
 {
     Assert.Throws <ArgumentException>(() => Morphism.CreateIso(
                                           Product2.Create(1, true),
                                           Product2.Create(2, true)
                                           ));
 }
示例#3
0
        public async Task <IActionResult> Create([Bind("Id,Name,Description,Price,PublishDate,Quantity,DefaultImageURL,SellerEmail,SellerId,SellVolume")] Product2 product2)
        {
            if (!AuthorizeManager.InAuthorizedMember(User.Identity.Name))
            {
                return(NotFound());
            }

            string UserId = User.FindFirstValue(ClaimTypes.NameIdentifier);

            var ProductList = _context.Product2.Where(m => m.SellerId == UserId).ToList();

            // 檢查該使用者上架的產品數量
            if (ProductList != null && ProductList.Count > 5)
            {
                TempData["ReachLimit"] = "建立失敗,您的產品數量已達上限!";
                return(RedirectToAction("Index"));
            }

            if (ModelState.IsValid)
            {
                product2.PublishDate = DateTime.Now;
                product2.SellerEmail = User.Identity.Name;
                product2.SellerId    = UserId;
                product2.SellVolume  = 0;

                _context.Add(product2);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(product2));
        }
示例#4
0
        public ActionResult TestInclude()

        {
            Product2 p = productDAO.getProduct(1);

            return(Ok(p));
        }
示例#5
0
        public void ConstructionPreservesValues()
        {
            var p1 = Product2.Create(42, "foo");

            Assert.Equal(42, p1.ProductValue1);
            Assert.Equal("foo", p1.ProductValue2);
        }
示例#6
0
        public void ProductsQuantity_AddingVariousProductsInAnyOrder_Expected_ProductQuantityShouldIncrease_Test()
        {
            // Arrange
            var shoppingCart = new ShoppingCart("Loyal");
            var product1     = new Product1(3);
            var product2     = new Product2();
            var product3     = new Product3(4);

            var expectedQuantityP1 = 6;
            var expectedQuantityP2 = 2;
            var expectedQuantityP3 = 8;

            var expectedProductLine = 3;

            // Act
            shoppingCart.AddProduct(product1);
            shoppingCart.AddProduct(product2);
            shoppingCart.AddProduct(product3);
            shoppingCart.AddProduct(product2);
            shoppingCart.AddProduct(product1);
            shoppingCart.AddProduct(product3);
            //shoppingCart.AddProduct(product1);
            //shoppingCart.AddProduct(product2);
            //shoppingCart.AddProduct(product3);

            // Assert for product quantity
            Assert.AreEqual(expectedQuantityP1, product1.ProductQuantity);
            Assert.AreEqual(expectedQuantityP2, product2.ProductQuantity);
            Assert.AreEqual(expectedQuantityP3, product3.ProductQuantity);

            // Assert for product line
            Assert.AreEqual(expectedProductLine, shoppingCart.Products.Count);
        }
        public ActionResult Cart()
        {
            List <Product2> products = new List <Product2>();

            if (Session["userid"] == null)
            {
                return(View("Message"));
            }
            int uid   = Convert.ToInt32(Session["userid"]);
            var chart = db.Orders.Where(i => i.Person_id == uid).Select(i => i).ToList();

            decimal?price = 0;

            foreach (var obj in chart)
            {
                Product2 p    = new Product2();
                var      temp = db.Products.Where(i => i.Id == obj.Product_id).Select(i => i).First();
                p.Id       = temp.Id;
                p.Name     = temp.Name;
                p.Price    = temp.Price;
                p.Image    = temp.Image;
                p.Order_id = obj.Order_id;
                products.Add(p);
                price = price + p.Price;
            }
            ViewBag.TotalPrice = price;
            return(View(products));
        }
示例#8
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Price,ImageUrl,LastPurchase,LastSale,IsAvailabe,Stock")] Product2 product2)
        {
            if (id != product2.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(product2);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!Product2Exists(product2.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(product2));
        }
示例#9
0
        public ActionResult Product2_Buy1(string name, string price, string img)
        {
            // 데이터 입력
            using (dbconnection)
            {
                dbconnection.Open();
                SqlCommand    command = new SqlCommand("SELECT * FROM Product2", dbconnection);
                SqlDataReader reader  = command.ExecuteReader();
                var           list    = new List <Product2>();

                while (reader.Read())
                {
                    var product2    = new Product2();
                    var readint     = reader.GetInt32(0);
                    var readstring  = reader.GetString(1);
                    var readstring1 = reader.GetString(2);
                    var readstring2 = reader.GetString(3);
                    product2.Index2 = readint;
                    product2.Name2  = readstring;
                    product2.Price2 = readstring1;
                    product2.Img2   = readstring2;
                    list.Add(product2);
                }
                ViewBag.Product2 = list;
            }
            return(View());
        }
示例#10
0
        public ActionResult Edit(Product2 p)
        {
            CodeFirstDatabaseEntities db = new CodeFirstDatabaseEntities();

            if (ModelState.IsValid)
            {
                Product2 existingProduct = db.Products.Where(temp => temp.ProductID == p.ProductID).FirstOrDefault();
                existingProduct.ProductName        = p.ProductName;
                existingProduct.Price              = p.Price;
                existingProduct.Category           = p.Category;
                existingProduct.DateOfPurchase     = p.DateOfPurchase;
                existingProduct.CategoryID         = p.CategoryID;
                existingProduct.BrandID            = p.BrandID;
                existingProduct.AvailabilityStatus = p.AvailabilityStatus;
                existingProduct.Active             = p.Active;
                db.SaveChanges();
                return(RedirectToAction("Index", "Products"));
            }
            else
            {
                ViewBag.Categories = db.Categories.ToList();
                ViewBag.Brands     = db.Brands.ToList();
                return(View(p)); //duhet ktheyer View(p) dhe jo View bosh
            }
        }
示例#11
0
        public ActionResult Details(long id)
        {
            CodeFirstDatabaseEntities db = new CodeFirstDatabaseEntities();
            Product2 p = db.Products.Where(temp => temp.ProductID == id).FirstOrDefault();

            return(View(p));
        }
示例#12
0
        public ActionResult Create(Product2 p)
        {
            CodeFirstDatabaseEntities db = new CodeFirstDatabaseEntities();

            if (ModelState.IsValid)
            {
                if (Request.Files.Count >= 1)
                {
                    var file     = Request.Files[0];
                    var imgBytes = new Byte[file.ContentLength];
                    file.InputStream.Read(imgBytes, 0, file.ContentLength);
                    var base64String = Convert.ToBase64String(imgBytes, 0, imgBytes.Length);
                    p.Photo = base64String;
                }

                db.Products.Add(p);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.Categories = db.Categories.ToList();
                ViewBag.Brands     = db.Brands.ToList();
                //   ViewBag.Message = "Keni gabime ne model";

                return(View(p));
            }
        }
示例#13
0
        private void MainView_Loaded(object sender, RoutedEventArgs e)
        {
            viewmodel = (MainViewModel)this.DataContext;
            Products  = viewmodel.Products;
            Products1 = viewmodel.Products1;
            Products2 = viewmodel.Products2;

            Product2 tmp = new Product2()
            {
                Chk1     = true,
                BandWide = "200",
                Chk2     = false,
                Freq     = "200000"
            };

            tmp.ToString();
            // Products.CollectionChanged += Products_CollectionChanged;


            Product3 tmpProduct3 = new Product3()
            {
                IsMine = true, Chk1 = true, BandWide = "100", Chk2 = true, Freq = "200"
            };
            var tmpStruct = tmpProduct3.InputStruct <StTest01>();

            //StTest01 st = new StTest01();
            //var tmpType = st.GetType();
            //var tmpProperty = st.GetType().GetMembers();
            //foreach (var p in st.GetType().GetProperties())
            //{
            //    // System.Diagnostics.Debug.WriteLine(p.Name + " : ");
            //}
        }
示例#14
0
        public ActionResult Insert()
        {
            Product2 insertProduct = new Product2();

            insertProduct.IsActive          = true;
            insertProduct.IsActiveSpecified = true;
            insertProduct.Name        = "Test Product";
            insertProduct.ProductCode = "Test";

            Response.Write("Name:" + insertProduct.Name);
            Response.Write("<br/>ProductCode:" + insertProduct.ProductCode);

            SaveResult[] createResults = sfdcBinding.create(new sObject[] { insertProduct });

            if (createResults[0].success)
            {
                string id = createResults[0].id;
                Response.Write("<br/>ID:" + id);
                Response.Write("<br/>INSERT Product Successfully!!!");
            }
            else
            {
                string result = createResults[0].errors[0].message;
                Response.Write("<br/>ERROR:" + result);
            }
            return(View("Index"));
        }
示例#15
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            //Products.Add(new Product()
            //{;
            //    BandWide = String.Format("{0}00", number),
            //    Freq = String.Format("{0}000", number),
            //    Chk1 = false,
            //    Chk2 = false
            //});
            //number++;
            testProducts222.Add((Product2)viewmodel.testProduct2.Clone());
            viewmodel.testProduct2.BandWide = "9999";

            Product2 tmp2  = (Product2)testProducts222.Where(x => x.BandWide == "345").First();
            Product2 tmp21 = (Product2)tmp2.Clone();

            testProducts23.Add((Product2)tmp2.Clone());
            int  idx  = testProducts23.IndexOf(tmp2);
            int  idx1 = testProducts222.IndexOf(tmp2);
            bool b0   = tmp2.HasSameValues(tmp21);
            bool b1   = tmp2.Equals(tmp21);
            bool b3   = tmp2 == tmp21;

            //tmp2.BandWide = "33333";

            viewmodel.testProduct2.SetValues("BandWide", "10000000");

            testProducts222.Where(x => x.Freq == "1000").ToList().Clone();
        }
示例#16
0
 public void ProductAdd(Product2 product) //post method
 {
     product.ID = ProductID;
     products2.Add(product); //add the post product data to the product list
     ProductID++;
     //instead of adding product data to the static product list you can save data to the database.
 }
示例#17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request.QueryString["id"] != null)
                {
                    int id = int.Parse(Request.QueryString["id"].ToString());
                    LoadProductsById(id);
                    //gerçekten link içinde id isminde bir deger vardır...
                    //girilen id'de ürün var
                }
                else
                {
                    //id değeri yok
                    //tüm ürünleri yükle
                    LoadProducts();
                    randomdate();
                }
                using (KiyaslaContext db = new KiyaslaContext())
                {
                    Product1.DataSource     = db.SmartPhone.ToList();
                    Product1.DataTextField  = "MarkaModel";
                    Product1.DataValueField = "Id";
                    Product1.DataBind();

                    Product2.DataSource     = db.SmartPhone.ToList();
                    Product2.DataTextField  = "MarkaModel";
                    Product2.DataValueField = "Id";
                    Product2.DataBind();
                }
            }
        }
示例#18
0
        public async Task <ActionResult> Create([Bind(Include = _Product2sPostBinding)] Product2 Product2)
        {
            String id = String.Empty;

            try
            {
                id = (await SalesforceService.MakeAuthenticatedClientRequestAsync(
                          async(client) =>
                {
                    return(await client.CreateAsync("Product2", Product2));
                }
                          )).ToString();
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Create Salesforce Product2";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            if (this.ViewBag.ErrorMessage == null)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
示例#19
0
        public async Task <ActionResult> Edit([Bind(Include = _Product2sPostBinding)] Product2 Product2)
        {
            SuccessResponse success = new SuccessResponse();

            try
            {
                success = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    success = await client.UpdateAsync("Product2", Product2.Id, Product2);
                    return(success);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Edit Salesforce Product2";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            if (success.Success == true)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(Product2));
            }
        }
示例#20
0
        public ActionResult Delete(long id)
        {
            CodeFirstDatabaseEntities db = new CodeFirstDatabaseEntities();
            Product2 existingProduct     = db.Products.Where(temp => temp.ProductID == id).FirstOrDefault();

            return(View(existingProduct));
        }
示例#21
0
        public ActionResult DeleteConfirmed(int id)
        {
            Product2 product2 = db.Product2s.Find(id);

            db.Product2s.Remove(product2);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#22
0
        public ActionResult Delete(long id, Product2 p)
        {
            CodeFirstDatabaseEntities db = new CodeFirstDatabaseEntities();
            Product2 existingProduct     = db.Products.Where(temp => temp.ProductID == id).FirstOrDefault();

            db.Products.Remove(existingProduct);
            db.SaveChanges();
            return(RedirectToAction("Index", "Products"));
        }
示例#23
0
        public void HashCodeDependsOnStructure()
        {
            var p1 = Product2.Create("foo", "bar");
            var p2 = Product2.Create("foo", "bar");
            var p3 = Product2.Create(12345, 67890);

            Assert.True(p1.GetHashCode() == p2.GetHashCode());
            Assert.False(p1.GetHashCode() == p3.GetHashCode());
        }
示例#24
0
        static void Main(string[] args)
        {
            /*
             * Como as coleções Hash testam igualdade?
             * - Se GetHashCode e Equals estiverem implementados:
             *  - Primeiro GetHashCode. Se der igual, usa Equals para confirmar.
             */

            HashSet <string> set = new HashSet <string>();

            set.Add("Maria");
            set.Add("Alex");

            Console.Write("Exemplo simples: O nome (Maria) existe na coleção set: ");
            Console.WriteLine(set.Contains("Maria")); //A função .Contains irá testar o GetHashCode conforme explicado acima

            /*
             * - Se GetHashCode e Equals NÃO estiverem implementados:
             *  - Tipos referência: compara as referências dos objetos
             *  - Tipos valor: comparar os valores dos atributos
             */

            //Tipos referência: Sem a implementação do GetHashCode e Equals na classe Product1. Irá comparar as referências.
            HashSet <Product1> a = new HashSet <Product1>();

            a.Add(new Product1("TV", 900.0));
            a.Add(new Product1("Notebook", 1200.0));

            Product1 prod1 = new Product1("Notebook", 1200.0);

            Console.WriteLine();
            Console.WriteLine("Sem a implementação do GetHashCode e Equals na classe: ");
            Console.WriteLine("Os objetos são iguais: " + a.Contains(prod1)); //Nesse caso o .Contains iá considerar para comparação as referências dos objetos e não seu conteúdo, por isso que mesmo os dados sendo totalmente iguais o resultado será "false", pois as referências dos objetos são realmente diferentes uma da outra.

            //Tipos Referência: Com a implementação do GetHashCode e Equals na classe Product2. Irá comparar agora o conteúdo(valores) dos objetos.
            HashSet <Product2> b = new HashSet <Product2>();

            b.Add(new Product2("TV", 900.0));
            b.Add(new Product2("Notebook", 1200.0));

            Product2 prod2 = new Product2("Notebook", 1200.0);

            Console.WriteLine();
            Console.WriteLine("Com a implementação do GetHashCode e Equals na classe: ");
            Console.WriteLine("Os objetos são iguais: " + b.Contains(prod2)); //Nesse caso o .Contains agora irá comparar os valores contidos nos objetos e não suas referência, então nesse caso o resultado será "True" pois realmente o conteúdo dos dois objetos são iguais.

            //Tipos Valor: Sempre comparará o conteúdo dos objetos e não suas referências.
            HashSet <Point> c = new HashSet <Point>();

            c.Add(new Point(3, 4));
            c.Add(new Point(5, 10));

            Point point = new Point(5, 10);

            Console.WriteLine();
            Console.WriteLine("Os pontos do Struct (Point) são iguais? " + c.Contains(point)); //No caso de um Struct sempre será comparado o seus valores(conteúdo) dos objetos e não suas referências, por isso nesse caso não é necessário implementar o GetHashCode e Equals dentro do Struct Point.
        }
示例#25
0
        public ActionResult Edit(long id)
        {
            CodeFirstDatabaseEntities db = new CodeFirstDatabaseEntities();
            Product2 existingProduct     = db.Products.Where(temp => temp.ProductID == id).FirstOrDefault();

            ViewBag.Categories = db.Categories.ToList();
            ViewBag.Brands     = db.Brands.ToList();
            return(View(existingProduct));
        }
示例#26
0
        public void EqualsIsStructural()
        {
            var p1 = Product2.Create("foo", "bar");
            var p2 = Product2.Create("foo", "bar");
            var p3 = Product2.Create(12345, 67890);

            Assert.True(p1.Equals(p2));
            Assert.False(p1.Equals(p3));
        }
示例#27
0
 public ActionResult Edit([Bind(Include = "Id,ProductName,ProductQuantity,UnitPrice")] Product2 product2)
 {
     if (ModelState.IsValid)
     {
         db.Entry(product2).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(product2));
 }
    public void TestMethodProduct2()
    {
        Product2 p1 = new Product2 {
            Id = 1, Name = "Foo"
        };
        Product2 p2 = new Product2 {
            Id = 1, Name = "Foo"
        };

        Assert.AreEqual(p1, p2);
    }
示例#29
0
        public async Task <IActionResult> Create([Bind("Id,Name,Price,ImageUrl,LastPurchase,LastSale,IsAvailabe,Stock")] Product2 product2)
        {
            if (ModelState.IsValid)
            {
                _context.Add(product2);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(product2));
        }
示例#30
0
        public ActionResult Create([Bind(Include = "Id,ProductName,ProductQuantity,UnitPrice")] Product2 product2)
        {
            if (ModelState.IsValid)
            {
                db.Product2s.Add(product2);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(product2));
        }
示例#31
0
        private static void Main(string[] args)
        {
            Product iphone6 = new Product("iPhone6", 28000.0);              //5.1宣告Product iPhone、宣告CPU cpu
            CPU cpu = new CPU("Intel i7 4970", 12000.0, 3.8);

            iphone6.SaySomething();                                        //5.2Product類別的SaySomething()、CPU類別的SaySomething()
            Console.WriteLine("上面是iphone6的\n");
            cpu.SaySomething();
            Console.WriteLine("上面是cpu的\n");

            iphone6.Amount = 1;                                             //7.3等一下7.X才會用到的

            Product anotherCPU = new CPU("Intel i3 4370", 6000.0, 3.5);     //6.1真正物件導向的寫法:左邊宣告成最上層的類別、右邊寫成子類別
            anotherCPU.SaySomething();                                      //6.2再寫下=new之前,Product anotherCPU的宣告,只是定義了一張貼紙而已;直到new出來後,才會在記憶體中劃出位置
            Console.WriteLine("上面是anotherCPU的(拿掉override)\n");        //   這種寫法是把子類別的CPU,裝箱成Product
            //anotherCPU.f                                                  //6.3.1因為anotherCPU屬於Product類別,所以看不到CPU特有的Frequency
            //                                                                6.3.2但這時的SaySomething()卻是CPU裡面的,因為用了override會指定要使用CPU的SaySomething()

            (anotherCPU as CPU).SaySomething();                             //6.4拿掉override後,要用 (anotherCPU as CPU)來叫CPU的SyaSomething()
            Console.WriteLine("上面是anotherCPU的(用了as CPU)\n");

            //anotherCPU.Amount = 3;                                          //7.3等一下7.才會用到的

            //ProductListCalculator calculator = new ProductListCalculator(); //7.4宣告一個ProductListCalculator
            //calculator.ProductList = new List<Product>();                   //7.5把ProductList給new出來
            //calculator.ProductList.Add(iphone6);                            //7.6把calaulator的ProductList加入iphone6、iphone6、anotherCPU
            //calculator.ProductList.Add(iphone6);
            //calculator.ProductList.Add(anotherCPU);
            //calculator.ShowReport();

            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            Product2[] products = new Product2[5];                              //11.5改寫Array.Sort,用來排序Product2型別
            products[0] = new Product2("Product1", 1500);
            products[1] = new Product2("Product2", 1200);
            products[2] = new Product2("Product3", 2500);
            products[3] = new Product2("Product4", 3000);
            products[4] = new Product2("Product5", 900);

            Console.WriteLine("排序前");
            for (int index = 0; index < products.Length; index++)
            {
                Console.WriteLine(products[index].Price);
            }

            Array.Sort(products);
            Console.WriteLine("排序後");
            for (int index = 0; index < products.Length; index++)
            {
                Console.WriteLine(products[index].Price);
            }
        }
示例#32
0
        private static void Main(string[] args)
        {
            Product1 iphone6 = new Product1("iphone6", 28000.0);
            CPU cpu = new CPU("Intel i7", 12000.0, 3.8);

            iphone6.SaySomething();
            Console.WriteLine();
            cpu.SaySomething();
            Console.WriteLine();

            Product1 anotherCPU = new CPU("Intel i6", 6000.0, 3.5);
            anotherCPU.SaySomething();
            Console.WriteLine();
            //anotherCPU

            (anotherCPU as CPU).SaySomething();
            Console.WriteLine();

            iphone6.Amount = 1;
            anotherCPU.Amount = 3;

            ProductListCalculator calculator = new ProductListCalculator();
            calculator.ProductList = new List<Product1>();
            //calculator.ProductList.Add(iphone6);
            //calculator.ProductList.Add(iphone6);
            calculator.ProductList.Add(anotherCPU);
            calculator.ShowReport();

            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            Product2[] products = new Product2[5];
            products[0] = new Product2("Product1", 15000);
            products[1] = new Product2("Product1", 12000);
            products[2] = new Product2("Product1", 25000);
            products[3] = new Product2("Product1", 30000);
            products[4] = new Product2("Product1", 9000);

            Console.WriteLine("排序前: ");
            for (int index = 0; index < products.Length; index++)
            {
                Console.WriteLine(products[index].Price);
            }

            Array.Sort(products);

            Console.WriteLine("排序後: ");
            for (int index = 0; index < products.Length; index++)
            {
                Console.WriteLine(products[index].Price);
            }
        }
示例#33
0
 public override void BuidProduct2()
 {
     Product2 product2 = new Product2();
     _product.SetProduct2(product2);
 }
示例#34
0
 public void SetProduct2(Product2 product)
 {
     _product2 = product;
 }