public async System.Threading.Tasks.Task EmployeesEditEditsAsync()
        {
            //Arrange
            Employees employeeTest = new Employees()
            {
                LastName = "test1", FirstName = "test1"
            };
            await _EmployeesControllerUnderTest.Create(employeeTest);

            _db.Entry(employeeTest).State = System.Data.Entity.EntityState.Added;

            var expectedEmployee = _db.Employees.Find(employeeTest.EmployeeID);

            _db.Dispose();
            employeeTest.LastName  = "test2";
            employeeTest.FirstName = "test2";
            _db = new NorthwindDatabase();

            //Act
            await _EmployeesControllerUnderTest.Edit(employeeTest);

            _db.Entry(employeeTest).State = System.Data.Entity.EntityState.Modified;
            var actualEmployee = _db.Employees.Find(employeeTest.EmployeeID);

            //Assert
            Assert.AreEqual(expectedEmployee, actualEmployee);

            DeleteTestFromDb();
        }
        public async System.Threading.Tasks.Task SuppliersDeleteItemAsync()
        {
            //Arrange
            //init
            var controller = new NorthwindWeb.Controllers.SuppliersController();
            var db         = new NorthwindDatabase();
            //create Suppliers
            var Suppliers = new Suppliers()
            {
                CompanyName = "TestSuppliersCreate",
                ContactName = "contact",
            };

            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();
            //detach Suppliers from db
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Detached;
            db.SaveChanges();

            //Act
            //run controller action
            await controller.DeleteConfirmed(Suppliers.SupplierID);

            controller.Dispose();

            //Assert
            //this will throw a InvalidOperationException
            var actualSuppliers = db.Suppliers.Where(x => x.SupplierID == Suppliers.SupplierID).First();
        }
Ejemplo n.º 3
0
        public async System.Threading.Tasks.Task ProductCreateItemAsync()
        {
            //Arrange
            var controller         = new ProductController();
            var db                 = new NorthwindDatabase();
            int productCountBefore = db.Products.Count();
            var product            = new Products()
            {
                CategoryID      = 4,
                ProductName     = "TestProductCreate",
                Discontinued    = false,
                QuantityPerUnit = "1",
                UnitPrice       = 1,
                UnitsInStock    = 1,
                ReorderLevel    = 0,
                SupplierID      = 1,
                UnitsOnOrder    = 0
            };

            //Act
            await controller.Create(product, null);

            //Assert
            Assert.AreEqual(productCountBefore + 1, db.Products.Count());
            db.Entry(db.Products.Where(x => x.ProductName == product.ProductName).First()).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            controller.Dispose();
            db.Dispose();
        }
        public async Task CategoryEditEdits()
        {
            //Arrange
            Categories categoriesTest = new Categories()
            {
                CategoryName = "foto"
            };
            await _categoriesControllerTest.Create(categoriesTest);

            db.Entry(categoriesTest).State = System.Data.Entity.EntityState.Added;

            var expectedCategory = db.Categories.Find(categoriesTest.CategoryID);

            db.Dispose();
            categoriesTest.CategoryName = "video";
            db = new NorthwindDatabase();

            //Act
            await _categoriesControllerTest.Edit(categoriesTest);

            db.Entry(categoriesTest).State = System.Data.Entity.EntityState.Modified;
            var actualCategory = db.Categories.Find(categoriesTest.CategoryID);

            //Assert
            Assert.AreEqual(expectedCategory, actualCategory);


            var category = db.Categories.Where(c => (c.CategoryName == "video") || (c.CategoryName == "foto"));

            db.Categories.RemoveRange(category);
            db.SaveChanges();
        }
        public async Task OrdersReturnsEditEdits()
        {
            //Arrange
            Orders orderTest = new Orders()
            {
                OrderID = 222, EmployeeID = 3
            };
            await _ordersControllerUnderTest.Create(orderTest);

            db.Entry(orderTest).State = System.Data.Entity.EntityState.Added;

            var expectedOrder = db.Orders.Find(orderTest.OrderID);

            db.Dispose();
            orderTest.EmployeeID = 4;
            db = new NorthwindDatabase();

            //Act
            await _ordersControllerUnderTest.Edit(orderTest);

            db.Entry(orderTest).State = System.Data.Entity.EntityState.Modified;
            var actualOrder = db.Orders.Find(orderTest.OrderID);

            //Assert
            Assert.AreEqual(expectedOrder, actualOrder);


            var orders = db.Orders.Where(o => o.OrderID == orderTest.OrderID && o.EmployeeID == orderTest.EmployeeID);

            db.Orders.RemoveRange(orders);
            db.SaveChanges();
        }
Ejemplo n.º 6
0
        public async System.Threading.Tasks.Task RegionEditEdits()
        {
            //Arrange
            Region regionTest = new Region()
            {
                RegionID = 100, RegionDescription = "Aici"
            };
            await _regionsControllerTest.Create(regionTest);

            db.Entry(regionTest).State = System.Data.Entity.EntityState.Added;

            var expectedRegion = db.Regions.Find(regionTest.RegionID);

            db.Dispose();
            regionTest.RegionDescription = "Acolo";
            db = new NorthwindDatabase();

            //Act
            await _regionsControllerTest.Edit(regionTest);

            db.Entry(regionTest).State = System.Data.Entity.EntityState.Modified;
            var actualRegion = db.Regions.Find(regionTest.RegionID);

            //Assert
            Assert.AreEqual(expectedRegion, actualRegion);


            var region = db.Regions.Where(r => (r.RegionDescription == "Aici") || (r.RegionDescription == "Acolo"));

            db.Regions.RemoveRange(region);
            db.SaveChanges();
        }
Ejemplo n.º 7
0
        public async Task CustomersReturnsEditEdits()
        {
            //Arrange
            var expectedCustomer = new Customers()
            {
                CustomerID = "ZZZZZ", CompanyName = "test"
            };

            db.Customers.Add(expectedCustomer);
            db.SaveChanges();
            db.Entry(expectedCustomer).State = System.Data.Entity.EntityState.Added;

            db.Dispose();
            expectedCustomer.CompanyName = "test2";
            db = new NorthwindDatabase();

            //Act
            await _customersControllerUnderTest.Edit(expectedCustomer);

            db.Entry(expectedCustomer).State = System.Data.Entity.EntityState.Modified;
            var actualCustomer = db.Customers.Find(expectedCustomer.CustomerID);

            //Assert
            Assert.AreEqual(expectedCustomer.CustomerID, actualCustomer.CustomerID);


            var customerss = db.Customers.Where(c => c.CompanyName == expectedCustomer.CompanyName || c.CompanyName == actualCustomer.CompanyName);

            db.Customers.RemoveRange(customerss);
            db.SaveChanges();
        }
Ejemplo n.º 8
0
        public async Task ShipperEditEdits()
        {
            //Arrange
            Shippers shipperTest = new Shippers()
            {
                CompanyName = "Express", Phone = "0240-111-111"
            };
            await _shippersControllerTest.Create(shipperTest);

            db.Entry(shipperTest).State = System.Data.Entity.EntityState.Added;

            var expectedShipper = db.Shippers.Find(shipperTest.ShipperID);

            db.Dispose();
            shipperTest.CompanyName = "Nero Express";
            shipperTest.Phone       = "0240-222-222";
            db = new NorthwindDatabase();

            //Act
            await _shippersControllerTest.Edit(shipperTest);

            db.Entry(shipperTest).State = System.Data.Entity.EntityState.Modified;
            var actualShipper = db.Shippers.Find(shipperTest.ShipperID);

            //Assert
            Assert.AreEqual(expectedShipper, actualShipper);


            var shipper = db.Shippers.Where(s => (s.CompanyName == "Express" && s.Phone == "0240-111-111") || (s.CompanyName == "Nero Express" && s.Phone == "0240-222-222"));

            db.Shippers.RemoveRange(shipper);
            db.SaveChanges();
        }
Ejemplo n.º 9
0
        public void ContactCreateItem()
        {
            //Arrange
            var controller = new NorthwindWeb.Controllers.ContactController();
            var db         = new NorthwindDatabase();

            NorthwindWeb.Models.Persons person = new NorthwindWeb.Models.Persons()
            {
                ID        = db.Persons.Count() + 1,
                FirstName = "test1223",
                LastName  = "123331111",
                Email     = "*****@*****.**",
                Comment   = "Buna!"
            };

            //Act
            var result = controller.Index(person);

            //Assert
            Assert.IsNotNull(result);

            db.Entry(person).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            db.Dispose();
        }
Ejemplo n.º 10
0
      public DatabaseSamples(string connectionString, MetaModel mapping, TextWriter log) {

         this.db = new NorthwindDatabase(connectionString, mapping) {
            Configuration = { 
               Log = log
            }
         };
      }
Ejemplo n.º 11
0
 public void TestInitialize()
 {
     //var xmlMapping = XmlMappingSource.FromStream(typeof(SQLiteTest).Assembly.GetManifestResourceStream("Test.Northwind.Access.map"));
     //db = new AccessNorthwind("C:/Northwind.mdb");
     //db = new AccessNorthwind("C:/Northwind.mdb", xmlMapping);
     db        = new SQLiteNorthwind("C:/Northwind.db3");
     db.Log    = Console.Out;
     employees = db.GetTable <Employee>();
     products  = db.GetTable <Product>();
 }
Ejemplo n.º 12
0
        public void TestInitialize()
        {
            var xmlMapping = XmlMappingSource.FromStream(typeof(SQLiteTest).Assembly.GetManifestResourceStream("Test.Northwind.Access.map"));

            //db = new AccessNorthwind("C:/Northwind.mdb");
            //db = new AccessNorthwind("C:/Northwind.mdb", xmlMapping);
            //db = new SQLiteNorthwind("C:/Northwind.db3");

            db     = new MySqlNorthwind(MySqlNorthwind.CreateConnection("root", "test", "Northwind", "localhost", 3306).ConnectionString);
            db.Log = Console.Out;
        }
        public void CategoryJsonTableFill()
        {
            //Arrange
            var controller    = new CategoriesController();
            var db            = new NorthwindDatabase();
            var categoryCount = db.Categories.Count();


            //Act
            var jsonData = controller.JsonTableFill("").Data as IQueryable <CategoriesData>;

            //Assert
            Assert.AreEqual(db.Categories.Count(), jsonData.Count());

            db.Dispose();
        }
Ejemplo n.º 14
0
        public void ShipperJsonTableFill()
        {
            //Arrange
            var controller   = new ShippersController();
            var db           = new NorthwindDatabase();
            var shipperCount = db.Shippers.Count();


            //Act
            var jsonData = controller.JsonTableFill().Data as IQueryable <ShipperData>;

            //Assert
            Assert.AreEqual(db.Shippers.Count(), jsonData.Count());

            db.Dispose();
        }
Ejemplo n.º 15
0
        public void RegionJsonTableFill()
        {
            //Arrange
            var controller  = new RegionsController();
            var db          = new NorthwindDatabase();
            var regionCount = db.Regions.Count();


            //Act
            var jsonData = controller.JsonTableFill("").Data as IQueryable <RegionData>;

            //Assert
            Assert.AreEqual(db.Regions.Count(), jsonData.Count());

            db.Dispose();
        }
Ejemplo n.º 16
0
        public void CustomersJsonTableFill()
        {
            //Arrange
            var controller     = new CustomersController();
            var db             = new NorthwindDatabase();
            var customersCount = db.Customers.Count();
            int draw           = 1;
            int row            = 20;

            //Act
            var jsonData = controller.JsonTableFill(draw, 0, row).Data as JsonDataTable;

            //Assert
            Assert.AreEqual(jsonData.draw, draw);
            Assert.AreEqual(jsonData.recordsTotal, customersCount);
            Assert.IsTrue(jsonData.recordsFiltered <= customersCount);
            db.Dispose();
        }
        public async Task OrderDetailReturnsEditEdits()
        {
            //Arrange
            Orders OrderTest = new Orders()
            {
                OrderID = 22, CustomerID = "ALFKI", EmployeeID = 3
            };
            Order_Details detailsTest = new Order_Details()
            {
                ProductID = 20, UnitPrice = 23, Quantity = 12, Discount = 1, Order = OrderTest
            };
            await _detailsControllerUnderTest.Create(detailsTest, OrderTest.OrderID);

            db.Entry(detailsTest).State = System.Data.Entity.EntityState.Added;

            var expectedDetails = db.Order_Details.Find(detailsTest.OrderID, detailsTest.ProductID);

            db.Dispose();
            detailsTest.UnitPrice = 43;
            detailsTest.Quantity  = 22;
            db = new NorthwindDatabase();

            //Act
            await _detailsControllerUnderTest.Edit(detailsTest);

            db.Entry(detailsTest).State = System.Data.Entity.EntityState.Modified;
            var actualDetails = db.Order_Details.Find(detailsTest.OrderID, detailsTest.ProductID);

            //Assert
            Assert.AreEqual(expectedDetails, actualDetails);


            var details = db.Order_Details.Where(o => o.OrderID == detailsTest.OrderID && o.ProductID == detailsTest.ProductID && o.UnitPrice == detailsTest.UnitPrice && o.Quantity == detailsTest.Quantity && o.Discount == detailsTest.Discount);
            var orders  = db.Orders.Find(OrderTest.OrderID);

            foreach (var orderdet in details)
            {
                db.Order_Details.Remove(orderdet);
            }

            db.Orders.Remove(orders);
            db.SaveChanges();
        }
Ejemplo n.º 18
0
        public object LinqExercises1()
        {
            var db = new NorthwindDatabase();

            // Elenco di prodotti che hanno elementi a magazzino

            // Elenco di prodotti in nome/descrizione/categoria contiene 'bev' (da gestire come parametro)

            // Valore totale di prodotti che ho a magazzino per categoria

            // Valore totale di prodotti riordinati per prodotto

            // Elenco da riordinare

            // Elenco dei client che ho in USA

            // Elenco delle categorie ordinate per quantità di prodotto

            return(null);
        }
        public void ProductsProducts()
        {
            //Arrange
            var controller      = new NorthwindWeb.Controllers.ProductsController();
            var db              = new NorthwindDatabase();
            int productCount    = db.Products.Count();
            int noProductOnPage = 10;

            //Act
            var resultView  = controller.Products("") as ViewResult;
            var modelResult = resultView.Model as PagedList.IPagedList <NorthwindWeb.ViewModels.ViewProductCategoryS>;

            //Assert
            Assert.IsNotNull(resultView);
            Assert.IsTrue(modelResult.TotalItemCount == productCount);
            Assert.IsTrue(modelResult.PageCount * noProductOnPage >= productCount);
            Assert.IsTrue(modelResult.PageNumber == 1);

            db.Dispose();
            controller.Dispose();
        }
        public async System.Threading.Tasks.Task SuppliersEditItemAsync()
        {
            //Arrange
            //init
            var controller = new NorthwindWeb.Controllers.SuppliersController();
            var db         = new NorthwindDatabase();
            //create Suppliers
            var Suppliers = new Suppliers()
            {
                CompanyName = "TestSuppliersCreate",
                ContactName = "contact",
            };

            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();
            //detach Suppliers from db
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Detached;
            db.SaveChanges();
            //edit name of Suppliers
            string name         = Suppliers.CompanyName;
            string nameExpected = "test1223";

            Suppliers.CompanyName = nameExpected;

            //Act
            //run controller action
            await controller.Edit(Suppliers);

            controller.Dispose();
            string actual = db.Suppliers.Where(x => x.SupplierID == Suppliers.SupplierID).First().CompanyName;

            //Assert
            //check and delete Suppliers
            Assert.AreEqual(nameExpected, actual);
            Suppliers                 = db.Suppliers.Where(x => x.SupplierID == Suppliers.SupplierID).First();
            Suppliers.CompanyName     = name;
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            db.Dispose();
        }
        public async System.Threading.Tasks.Task SuppliersCreateItemAsync()
        {
            //Arrange
            var controller           = new NorthwindWeb.Controllers.SuppliersController();
            var db                   = new NorthwindDatabase();
            int SuppliersCountBefore = db.Suppliers.Count();
            var Suppliers            = new Suppliers()
            {
                CompanyName = "TestSuppliersCreate",
                ContactName = "contact",
            };

            //Act
            await controller.Create(Suppliers);

            //Assert
            Assert.AreEqual(SuppliersCountBefore + 1, db.Suppliers.Count());
            db.Entry(Suppliers).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            controller.Dispose();
            db.Dispose();
        }
Ejemplo n.º 22
0
        public async System.Threading.Tasks.Task ProductEditItemAsync()
        {
            //Arrange
            //init
            var controller = new ProductController();
            var db         = new NorthwindDatabase();
            //create product
            var product = new Products()
            {
                ProductName = "test", CategoryID = 1, SupplierID = 1
            };

            db.Entry(product).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();
            //detach product from db
            db.Entry(product).State = System.Data.Entity.EntityState.Detached;
            db.SaveChanges();
            //edit name of product
            string name         = product.ProductName;
            string nameExpected = "test12232";

            product.ProductName = nameExpected;

            //Act
            //run controller action
            await controller.Edit(product, null);

            controller.Dispose();
            string actual = db.Products.Where(x => x.ProductID == product.ProductID).First().ProductName;

            //Assert
            //check and delete product
            Assert.AreEqual(nameExpected, actual);
            product                 = db.Products.Where(x => x.ProductID == product.ProductID).First();
            product.ProductName     = name;
            db.Entry(product).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
            db.Dispose();
        }
Ejemplo n.º 23
0
        public async Task TerritoryEditEdits()
        {
            //Arrange
            Region regionTest = new Region()
            {
                RegionID = 100, RegionDescription = "test"
            };
            Territories territoryTest = new Territories()
            {
                TerritoryID = "102", TerritoryDescription = "Aici", Region = regionTest
            };
            await _territoriesControllerTest.Create(territoryTest, regionTest.RegionID);

            db.Entry(territoryTest).State = System.Data.Entity.EntityState.Added;

            var expectedTerritory = db.Territories.Find(territoryTest.TerritoryID);

            db.Dispose();
            territoryTest.TerritoryDescription = "Acolo";
            db = new NorthwindDatabase();
            //Act
            await _territoriesControllerTest.Edit(territoryTest);

            db.Entry(territoryTest).State = System.Data.Entity.EntityState.Modified;
            var actualTerritory = db.Territories.Find(territoryTest.TerritoryID);

            //Assert
            Assert.AreEqual(expectedTerritory, actualTerritory);


            var territory = db.Territories.Where(t => (t.TerritoryDescription == "Aici") || (t.TerritoryDescription == "Acolo"));

            db.Territories.RemoveRange(territory);
            var regions = db.Regions.Where(t => t.RegionDescription.Contains(regionTest.RegionDescription));

            db.Regions.RemoveRange(regions);
            db.SaveChanges();
        }
Ejemplo n.º 24
0
        public async System.Threading.Tasks.Task ProductDeleteItemAsync()
        {
            //Arrange
            var controller = new ProductController();
            var db         = new NorthwindDatabase();
            //create product
            var product = new Products()
            {
                ProductName = "test", CategoryID = 1, SupplierID = 1
            };

            db.Entry(product).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();

            //Act
            try
            {
                //run controller action
                await controller.DeleteConfirmed(product.ProductID);

                controller.Dispose();
            }
            catch (Exception ex)
            {
                //image not found
                if (!(ex is NullReferenceException))
                {
                    throw;
                }
            }
            //Assert
            //this will throw a InvalidOperationException
            if (db.Products.Any(x => x.ProductID == product.ProductID))
            {
                Assert.Fail();
            }
        }
 public CategoriesController(NorthwindDatabase context)
 {
     db = context;
 }
Ejemplo n.º 26
0
        public object LinqExercises1()
        {
            var db = new NorthwindDatabase();

            // Elenco di prodotti che hanno elementi a magazzino
            var prod1 = db.Products.Where(p => p.UnitsInStock > 0)
                        .Select(p => new { p.ProductName, p.UnitsInStock });
            //return prod1;

            // Elenco di prodotti la cui nome categoria contiene 'bev' (da gestire come parametro)
            string filter = "bev";
            //filter = filter.ToLower();
            //var prod2 = db.Products.Where(p => p.Category.CategoryName.ToLower().Contains(filter))
            //                .Select(p => new { p.ProductName, p.Category.CategoryName });

            var prod2 = db.Products.Where(p => p.Category.CategoryName
                                          .IndexOf(filter, StringComparison.CurrentCultureIgnoreCase) >= 0)
                        .Select(p => new { p.ProductName, p.Category.CategoryName });


            //prod2 = db.Products.Where(p =>
            //                p.Category.CategoryName.ToLower().Contains(filter)
            //                || p.ProductName.ToLower().Contains(filter)
            //                || p.Category.Description.ToLower().Contains(filter))
            //        .Select(p => new { p.ProductName, p.Category.CategoryName});

            //prod2 = db.Products.Where(p =>
            //                ( p.Category.CategoryName + p.Category.Description
            //                 + p.ProductName).ToLower().Contains(filter))
            //        .Select(p => new { p.ProductName, p.Category.CategoryName });

            Trace.WriteLine($"prods: {prod2.Count()}");

            //return prod2;

            // Valore totale di prodotti che ho a magazzino
            var totalValue  = db.Products.Sum(p => p.UnitPrice * p.UnitsInStock);
            var totalValue2 = db.Products.Select(p => p.UnitPrice * p.UnitsInStock).Sum();

            Trace.WriteLine($"Total prod value: {totalValue} - {totalValue2}");

            // Valore totale di prodotti per categoria
            var categ1 = db.Categories.Select(c => new {
                c.CategoryName,
                TotalValue = db.Products.Where(p => p.Category.Id == c.Id)
                             .Sum(p => p.UnitPrice * p.UnitsInStock)
            });

            categ1 = (from c in db.Categories
                      select new
            {
                c.CategoryName,
                TotalValue = db.Products
                             .Where(p => p.Category.Id == c.Id)
                             .Sum(p => p.UnitPrice * p.UnitsInStock)
            });

            //return categ1;

            // Elenco dei client che ho in USA
            var customers = from c in db.Customers
                            where c.Country == "USA"
                            select new
            {
                c.Id,
                c.CompanyName,
                c.Country
            };

            //return customers;

            // Elenco delle categorie ordinate per quantità di prodotto

            var categ2 = db.Categories.Select(c => new
            {
                c.CategoryName,
                ProdQty = db.Products.Where(p => p.Category.Id == c.Id)
                          .Sum(p => p.UnitsInStock)
            }).OrderBy(c => c.ProdQty).ThenBy(c => c.CategoryName);

            return(categ2);

            return(null);
        }
Ejemplo n.º 27
0
        public object ComplexObjectIntro()
        {
            var db = new NorthwindDatabase();

            var cat1 = db.Categories.Select(c =>
                                            new {
                c.Id,
                c.CategoryName
            });

            cat1.LogValues();

            //db.Categories.LogValues();

            var prods1 = db.Products.Where(x => x.Category.Id == 1);

            var prod = new Product();

            prod.Id                   = 23;
            prod.UnitsInStock         = 213;
            prod.Category             = new Category();
            prod.Category.Id          = 11;
            prod.Category.Description = "asljfhasldjfhasldfj";

            var prods2 = db.Products.Where(x => x.Category.Id == 1)
                         .Select(x => new {
                x.Id,
                x.ProductName,
                //Categ = x.Category,
                CategoryId = x.Category.Id,
                x.Category.CategoryName
            });

            //return prods2;


            var prodCat1 = db.Products.Where(p => p.Category.Id == 1);
            var numProds = prodCat1.Count();


            var prodCatList = prodCat1.ToList();
            //var a = prodCatList.Count;

            var b = prodCatList.Count();



            var numProdsInStock = prodCat1.Sum(p => p.UnitsInStock);

            //numProdsInStock = prodCat1.Select(p => p.UnitsInStock).Sum();

            var avgPrice = prodCat1.Average(p => p.UnitPrice);

            var ac = prodCat1.Min(p => p.UnitPrice);
            var bc = prodCat1.Max(p => p.UnitPrice);

            var prod1 = prodCat1.First();          // almeno 1 elemento
            var prod2 = prodCat1.FirstOrDefault(); // 0 +

            //var prod3 = prodCat1.Single(); // 1 di 1
            //var prod4 = prodCat1.SingleOrDefault(); // 1 o 0

            // ---

            if (prodCat1.Any(p => p.UnitsInStock > 0))
            {
                // solo se sono presenti elementi
            }

            // ---

            var prodsWithStock = prodCat1.Where(p => p.UnitsInStock > 0);

            // operazione eseguita 2 volte
            if (prodsWithStock.Any())
            {
                foreach (var p in prodsWithStock)
                {
                    //
                }
            }


            if (prodCat1.Where(p => p.UnitsInStock > 0).Any())
            {
            }


            // -----
            var categs = db.Categories.Select(c => new
            {
                c.Id,
                c.CategoryName
            });

            foreach (var cat in categs)
            {
                var numProdCateg = db.Products.Count(p => p.Category.Id == cat.Id);

                Trace.WriteLine($"{cat.CategoryName}: {numProdCateg} products");
            }

            // -----------

            var categsWithProds = db.Categories.Select(c => new
            {
                c.Id,
                c.CategoryName,
                NumProducts = c.Products == null ? 0 : c.Products.Count()
            });


            var categsWithProds1 = db.Categories.Select(c => new
            {
                c.Id,
                c.CategoryName,
                //NumProducts = db.Products.Where(p => p.Category.Id == c.Id).Count()
                NumProducts = db.Products.Count(p => p.Category.Id == c.Id)
            });

            return(categsWithProds1);
            //categsWithProds.ToList();

            //return null;
        }
 public MenuViewComponent(NorthwindDatabase context)
 {
     _northwindDatabase = context;
 }
Ejemplo n.º 29
0
        //todo
        //private log4net.ILog logger = log4net.LogManager.GetLogger(typeof(ProductController));  //Declaring Log4Net to log errors in Event View-er in NorthwindLog Application log.


        public ProductController(NorthwindDatabase context)
        {
            db = context;
        }
 public OrderController(NorthwindDatabase context)
 {
     db = context;
 }