Beispiel #1
0
        public string GetProducts()
        {
            using (ProductsContext _prodContext = new ProductsContext())
            {
                ProductPager   list          = new ProductPager(_prodContext);
                int            rowCount      = 10;
                int            firstIndex    = (Convert.ToInt32(Request.Params["page"]) - 1) * rowCount;
                List <Product> products      = list.GetPage(firstIndex, rowCount);
                List <Object>  anonValueList = new List <Object>();

                foreach (var j in products)
                {
                    anonValueList.Add(new
                    {
                        Id    = j.Id,
                        Name  = j.Name,
                        Price = j.Price,
                        Count = j.Count
                    });
                }

                string jsonResult = JsonConvert.SerializeObject(anonValueList.ToArray());
                return(jsonResult);
            }
        }
Beispiel #2
0
        /// <summary>
        /// This takes in productmodell / product giving it and guid id and add it to the database.
        /// </summary>
        /// <param name="ínputProduct"></param>
        /// <returns></returns>
        public async Task createProductAsync(ProductModell ínputProduct)
        {
            try
            {
                if (ínputProduct != null)
                {
                    ínputProduct.productID = Guid.NewGuid();

                    while (await validateIDToDatabaseAsync(ínputProduct) == true)
                    {
                        ínputProduct.productID = Guid.NewGuid();
                    }

                    ProductsContext.Products.Add(ínputProduct);
                    await ProductsContext.SaveChangesAsync();
                }
                else
                {
                    throw new InvalidOperationException("Emty / Invalid input.");
                }
            }
            catch
            {
                throw;
            }
        }
Beispiel #3
0
    public static void Main()
    {
        using (var context = new ProductsContext())
        {
            // Create a clean database each time
            // Notice that indexer properties result in columns in the database, like normal properties
            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            var beverages = new Category
            {
                Id          = 1,
                Name        = "Beverages",
                Description = "Stuff to sip on"
            };

            var foods = new Category
            {
                Id          = 2,
                Name        = "Food",
                Description = "Stuff to nibble on"
            };

            var marmite = new Product
            {
                Id              = 1,
                Name            = "Marmite",
                ["Description"] = "Yeasty stuff", // Values set using the indexer
                ["Price"]       = 5.99m,
                ["CategoryId"]  = 1
            };

            var bovril = new Product
            {
                Id              = 2,
                Name            = "Marmite",
                ["Description"] = "Beefy stuff",
                ["Price"]       = 4.99m,
                ["CategoryId"]  = 1
            };

            context.AddRange(beverages, foods, marmite, bovril);

            context.SaveChanges();
        }

        using (var context = new ProductsContext())
        {
            var products = context.Products.ToList();

            // Show what we loaded
            Console.WriteLine();
            Console.WriteLine();
            foreach (var product in products)
            {
                var category = context.Categories.Find(product["CategoryId"]);
                Console.WriteLine($"Product \"{product.Name}\" belongs to category {category.Name}");
            }
        }
    }
 public List <Product> GetAll()
 {
     using (productContext = new ProductsContext())
     {
         return(productContext.Products.ToList());
     }
 }
Beispiel #5
0
 public RefreshProducts(IEnumerable <IProductService> productServices, ProductsContext productsContext, IMapper mapper, ILogger <RefreshProducts> logger)
 {
     _productServices = productServices;
     _productsContext = productsContext;
     _mapper          = mapper;
     _logger          = logger;
 }
Beispiel #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ProductsContext productsContext)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseSerilogRequestLogging();

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints => { endpoints.MapControllers(); });

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Products API v1");
            });

            if (env.IsDevelopment())
            {
                productsContext.KeepTryingToMigrateDatabase();
            }
        }
Beispiel #7
0
 public List <Product> GetProducts()
 {
     using (var db = new ProductsContext())
     {
         return(db.Products.ToList());
     }
 }
Beispiel #8
0
        private static void ExportData()
        {
            using (var db = new ProductsContext())
            {
                var    productsInRange     = GetPriceRange(db);
                string jsonProductsInRange = Export(productsInRange);

                File.WriteAllText(@"Exported\ProductsInRange.json", jsonProductsInRange);

                var    succsessfulluSoldProducts = GetSoldProducts(db);
                string jsonSoldProducts          = Export(succsessfulluSoldProducts);

                File.WriteAllText(@"Exported\SuccsessfullySoldProducts.json", jsonSoldProducts);

                var    categoriesCountProducts = CountProducts(db);
                string jsonCount = Export(categoriesCountProducts);

                File.WriteAllText(@"Exported\CategoriesByPrroductsCount.json", jsonCount);

                var usersAndProducts  = GetUsersAndProducts(db);
                var jsonUsersProducts = Export(usersAndProducts);

                File.WriteAllText(@"Exported\UsersAndProducts.json", jsonUsersProducts);
            }
        }
Beispiel #9
0
        private static IEnumerable GetUsersAndProducts(ProductsContext db)
        {
            var users = db.Users
                        .Where(u => u.SoldProducts.Count >= 1)
                        .Select(u => new
            {
                u.FirstName,
                u.LastName,
                u.Age,
                SoldProducts = new
                {
                    Count    = u.SoldProducts.Count,
                    Products = u.SoldProducts.Select(p => new
                    {
                        p.Name,
                        p.Price
                    }).ToArray()
                }
            })
                        .OrderByDescending(u => u.SoldProducts.Count)
                        .ToArray();

            var obj = new
            {
                UsersCount = users.Length,
                Users      = users
            };

            return(new[] { obj });
        }
Beispiel #10
0
        private static void CountProductsXml(ProductsContext db)
        {
            var categories = db.Categories
                             .Select(c => new
            {
                c.Name,
                ProductsCount = c.CategoryProducts.Count,
                AveragePrice  = c.CategoryProducts.Count == 0 ? 0 : c.CategoryProducts.Select(p => p.Product.Price).Average(),
                TotalRevenue  = c.CategoryProducts.Select(p => p.Product.Price).Sum()
            })
                             .OrderBy(c => c.ProductsCount)
                             .ToArray();

            var xDoc = new XDocument();
            var xElementsCategories = new List <XElement>();

            foreach (var category in categories)
            {
                xElementsCategories.Add(new XElement("category",
                                                     new XAttribute("name", category.Name),
                                                     new XElement("products-count", category.ProductsCount),
                                                     new XElement("average-price", category.AveragePrice),
                                                     new XElement("total-revenue", category.TotalRevenue))
                                        );
            }

            xDoc.Add(new XElement("categories", xElementsCategories));

            xDoc.Save(@"Exported\CategoriesByProductsCount.xml");
        }
Beispiel #11
0
        private static void ProductsInRangeXml(ProductsContext db)
        {
            var productsInRange = db.Products
                                  .Where(p => p.Price >= 1000 && p.Price <= 2000 && p.Buyer != null)
                                  .Select(x => new
            {
                x.Name,
                x.Price,
                Buyer = x.Buyer.FullName
            })
                                  .OrderBy(p => p.Price)
                                  .ToArray();

            var xDoc      = new XDocument();
            var xElements = new List <XElement>();

            foreach (var product in productsInRange)
            {
                xElements.Add(new XElement("product",
                                           new XAttribute("name", product.Name),
                                           new XAttribute("price", product.Price),
                                           new XAttribute("buyer", product.Buyer)
                                           ));
            }

            xDoc.Add(new XElement("products", xElements));

            xDoc.Save(@"Exported\ProductsInRnage.xml");
        }
Beispiel #12
0
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(env.ContentRootPath)
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                          .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                          .AddEnvironmentVariables();

            Configuration = builder.Build();

            using (var context = new ProductsContext())
            {
                context.Database.EnsureCreated();

                var product = new Product {
                    ID   = 1,
                    Name = "Mesa", Price = 29, Stock = true
                };
                context.Add(product);

                var image = new ProductImage {
                    ID         = 1,
                    UniqueName = "Mesa1", ProductID = 1,
                };
                context.Add(image);

                context.SaveChanges();
            }
        }
Beispiel #13
0
        ProductsContext db = null; //new ProductsContext(new MySqlConnection("Data Source=localhost;port=3306;Initial Catalog=test;user id=root;password=P@ssword!;"), true);

        public ProductsController()
        {
            string dbType = "";

            if (System.Web.HttpContext.Current.Request.QueryString["DBType"] != null)
            {
                dbType = System.Web.HttpContext.Current.Request.QueryString["DBType"].ToLower();
            }

            switch (dbType)
            {
            case "mysql":
            {
                this.db = new ProductsContext(new MySqlConnection("Data Source=localhost;port=3306;Initial Catalog=test;user id=root;password=P@ssword!;"), true);
                break;
            }

            case "mssqlserver":
            {
                this.db = new ProductsContext(new SqlConnection("Data Source=192.168.1.158;Initial Catalog=ODataTest;User ID=MES;Password=M([email protected]"), true);
                break;
            }

            default:
            {
                this.db = new ProductsContext(new MySqlConnection("Data Source=localhost;port=3306;Initial Catalog=test;user id=root;password=P@ssword!;"), true);
                break;
            }
            }
        }
Beispiel #14
0
        public string EditProduct()
        {
            using (ProductsContext _prodContext = new ProductsContext())
            {
                int    id    = Convert.ToInt32(Request.Params["ProductId"]);
                string name  = Request.Params["Name"];
                float  price = Convert.ToSingle(Request.Params["Price"]);

                Product prod = _prodContext.Products.Where(i => i.Id == id).First();
                prod.Name  = name;
                prod.Price = price;
                _prodContext.SaveChanges();

                ProductPager   list          = new ProductPager(_prodContext);
                List <Product> products      = list.GetPage(10);
                List <Object>  anonValueList = new List <Object>();

                foreach (var j in products)
                {
                    anonValueList.Add(new
                    {
                        Id    = j.Id,
                        Name  = j.Name,
                        Price = j.Price,
                        Count = j.Count
                    });
                }

                string jsonResult = JsonConvert.SerializeObject(anonValueList.ToArray());
                return(jsonResult);
            }
        }
Beispiel #15
0
        // Thực hiện chèn dữ liệu mẫu, 2 sản phẩm
        public static async void InsertProduct()
        {
            using (var context = new ProductsContext())
            {
                // Dùng đối tượng DbSet để thêm
                await context.products.AddAsync(new Product
                {
                    Name     = "Sản phẩm 1",
                    Provider = "Công ty 1"
                });

                // Dùng context để thêm
                await context.AddAsync(new Product()
                {
                    Name     = "Sản phẩm 2",
                    Provider = "Công ty 1"
                });


                // Thực hiện Insert vào DB các dữ liệu đã thêm.
                int rows = await context.SaveChangesAsync();

                Console.WriteLine($"Đã lưu {rows} sản phẩm");
            }
        }
Beispiel #16
0
        private static void AddSellersAndBuyers(Product[] products, ProductsContext db)
        {
            var sellers = db.Users.Count();
            var random  = new Random();

            foreach (var product in products)
            {
                product.SellerId = random.Next(1, sellers);
            }

            db.Products.AddRange(products);
            db.SaveChanges();

            foreach (var product in db.Products)
            {
                int  id     = product.Id;
                int  sellId = product.SellerId;
                int  result = Math.Abs(id * sellId);
                bool isEven = result % 2 == 0;
                int? value  = null;

                if (!isEven)
                {
                    value = random.Next(1, sellers);
                }

                product.BuyerId = value;
            }

            db.SaveChanges();
        }
Beispiel #17
0
        public void UpdateDifDBContext_WhenCalled_ExpectDbUpdateConcurrencyException()
        {
            var logFactory = new LoggerFactory();

            logFactory.AddProvider(new SqliteLoggerProvider());


            var context1 = new ProductsContext(new DbContextOptionsBuilder <ProductsContext>()
                                               .UseSqlite("Data Source=products.db").UseLoggerFactory(logFactory).Options);
            var context2 = new ProductsContext(new DbContextOptionsBuilder <ProductsContext>()
                                               .UseSqlite("Data Source=products.db").UseLoggerFactory(logFactory).Options);

            context1.Database.ExecuteSqlCommand(
                @"UPDATE Products SET RowVersion = randomblob(8) WHERE RowVersion = null");

            var productFromContext1 = context1.Products.AsNoTracking().FirstOrDefault(p => p.ProductId == 1);
            var productFromContext2 = context1.Products.AsNoTracking().FirstOrDefault(p => p.ProductId == 1);

            productFromContext1.Description = DateTime.Now.ToString();
            productFromContext2.Description = DateTime.UtcNow.ToString();

            try
            {
                context1.Entry(productFromContext1).State = EntityState.Modified;
                var count = context1.SaveChanges();
                productFromContext1 = context1.Products.FirstOrDefault(p => p.ProductId == 1);
                context2.Entry(productFromContext2).State = EntityState.Modified;
                count = context2.SaveChanges();
                Assert.True(false);
            }
            catch (DbUpdateConcurrencyException e)
            {
                Assert.True(true);
            }
        }
Beispiel #18
0
        public static Guid GetId(string name)
        {
            var context = new ProductsContext();

            IEnumerable <Product> productIEnum = context.Products;
            var products = productIEnum.Where(p => p.Name == name).ToList();

            int  choice = 0;
            bool check  = false;

            while (!check)
            {
                System.Console.Clear();
                Console.WriteLine("Выберите запись для изменений: ");
                for (int i = 0; i < products.Count; i++)
                {
                    Console.Write($"{i + 1}) ");
                    products[i].Show();
                }

                check = int.TryParse(System.Console.ReadLine(), out choice);
                if (choice < 0 || choice > products.Count)
                {
                    check = false;
                }
            }
            return(products[choice - 1].Id);
        }
Beispiel #19
0
        public ProductService(string connectionsString)
        {
            var optionsBuilder = new DbContextOptionsBuilder();

            optionsBuilder.UseNpgsql(connectionsString);
            Db = new ProductsContext(optionsBuilder.Options);
        }
Beispiel #20
0
        // GET: Categories/Index
        public ActionResult Index()
        {
            ProductsContext db         = new ProductsContext();
            List <Category> categories = db.Categories.ToList();

            return(View(categories));
        }
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app,
                              IHostingEnvironment env,
                              ProductsContext context)
        {
            if (Configuration.GetValue <bool>("DatabaseMigrate"))
            {
                context.Database.Migrate();
            }

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
        public List <Brand> Get()
        {
            ProductsContext db     = new ProductsContext();
            List <Brand>    brands = db.Brands.ToList();

            return(brands);
        }
 public Product Get(int id)
 {
     using (productContext = new ProductsContext())
     {
         return(productContext.Products.Find(id));
     }
 }
Beispiel #24
0
 //Constructor
 public CartController()
 {
     //Create references
     db             = new ProductsContext();
     sessionManager = new SessionManager();
     cartManager    = new CartManager(sessionManager, db);
 }
Beispiel #25
0
        public void When_Get_Product_With_Id_2_Then_Show_Only_This_Product()
        {
            var _productOptions = new DbContextOptionsBuilder <ProductsContext>().UseInMemoryDatabase("products_detail").Options;
            var _productContext = new ProductsContext(_productOptions);

            ProductsModel productData = new ProductsModel {
                id                = 2,
                name              = "43 Piece dinner Set",
                price             = (Decimal)12.95,
                availability      = "InStock",
                stockAvailability = 10,
                age               = "3_to_5",
                gender            = "FEMALE",
                brand             = "CoolKidz"
            };

            _productContext.Products.Add(productData);
            _productContext.SaveChanges();

            ProductsService productsService = new ProductsService(_productContext);
            var             actualResult    = productsService.getProductDetail(2);

            var expectedResult = _productContext.Products.First();

            Assert.Equal(expectedResult, actualResult);
        }
Beispiel #26
0
        public UnitOfWork(ProductsContext context)
        {
            _context = context;

            Products = new ProductRepository(context);
            Comments = new CommentRepository(context);
        }
Beispiel #27
0
 public HomeController(UserManager <IdentityUser> um, RoleManager <IdentityRole> rm, IDemoHelper helper, ProductsContext productsContext)
 {
     _userManager = um;
     _roleManager = rm;
     _h           = helper;
     _pc          = productsContext;
 }
Beispiel #28
0
        public static async void ReadProducts()
        {
            using (var context = new ProductsContext())
            {
                // Lấy List các sản phẩm từ DB
                var products = await context.products.ToListAsync();

                Console.WriteLine("Tất cả sản phẩm");
                foreach (var product in products)
                {
                    Console.WriteLine($"{product.ProductId,2} {product.Name,10} - {product.Provider}");
                }
                Console.WriteLine();
                Console.WriteLine();

                //Sử dụng LINQ trên DbSet (products)
                products = await(from p in context.products select p).ToListAsync();

                Console.WriteLine("Sản phẩm CTY A");
                foreach (var product in products)
                {
                    Console.WriteLine($"{product.ProductId,2} {product.Name,10} - {product.Provider}");
                }
            }
        }
Beispiel #29
0
 public UnitOfWork()
 {
     this.context = new ProductsContext();
     Products     = new ProductRepository(context);
     Suppliers    = new SupplierRepository(context);
     Categories   = new CategoryRepository(context);
 }
Beispiel #30
0
        public string GetOperations()
        {
            using (UsersContext _userContext = new UsersContext())
                using (ProductsContext _prodContext = new ProductsContext())
                {
                    OperationManager manager = new OperationManager(_prodContext, _userContext);
                    int rowCount             = 10;
                    int firstIndex;
                    int prodId;
                    try
                    {
                        rowCount   = Convert.ToInt32(Request.Params["rows"]);
                        firstIndex = (Convert.ToInt32(Request.Params["page"]) - 1) * rowCount;
                        prodId     = Convert.ToInt32(Request.Params["prodId"]);
                    }
                    catch (Exception ex)
                    {
                        return("");
                    }

                    List <OperationRow> resultList;
                    resultList = manager.GetPage(firstIndex, rowCount, prodId);
                    if (resultList == null)
                    {
                        return("");
                    }
                    if (Request.Params["sidx"] != null)
                    {
                        resultList = manager.Sort(resultList, Request.Params["sidx"], Request.Params["sord"]);
                    }

                    string jsonResult = JsonConvert.SerializeObject(resultList.ToArray());
                    return(jsonResult);
                }
        }
 protected void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (db != null)
         {
             db.Dispose();
             db = null;
         }
     }
 }