public static void Run() { IArrayCollection <Car> carArray = new ArrayCollection <Car>(); carArray.Insert(new Car("AB 33 108", 12000), 0); carArray.Insert(new Car("CD 65 647", 15000), 1); carArray.Insert(new Car("EF 23 243", 35000), 2); carArray.Insert(new Car("GH 40 393", 24000), 3); carArray.Insert(new Car("IJ 82 553", 18000), 4); IIndexedCollection <Car> carIC = Configurator.Configure(carArray); Console.WriteLine("After Creation"); PrintContent(carIC); carIC.DeleteAt(2); Console.WriteLine("After Delete at position 2"); PrintContent(carIC); carIC.InsertAt(new Car("ZX 98 243", 20000), 1); Console.WriteLine("After Insert at position 1"); PrintContent(carIC); carIC.Remove(); Console.WriteLine("After Remove (at end)"); PrintContent(carIC); carIC.Add(new Car("YP 80 626", 13000)); Console.WriteLine("After Add (at end)"); PrintContent(carIC); Car aCar = carIC.At(3); Console.WriteLine($"Car at index 3: {aCar}"); }
private static void PrintContent <T>(IIndexedCollection <T> ic) { for (int i = 0; i < ic.Count; i++) { Console.WriteLine($"[{i}] {ic.At(i)}"); } Console.WriteLine(); }
public void TestCollectionClear() { using (var ws = ctx.OpenWorkspace <IDatabase>(IsolationLevel.Exclusive)) { IDatabase database = ws.Data; ICity city; for (int i = 0; i < 100; i++) { city = database.Cities.Single(c => c.Name.Equals("City" + i)); Assert.IsNotNull(city); } IIndexedCollection <ICity> tmpCities = ws.New <IIndexedCollection <ICity> >(); database.Cities = tmpCities; Assert.AreEqual(0, database.Cities.Count); IUser user = database.Users.Single(u => u.Username.Equals("User1")); Assert.AreEqual("City1", user.City.Name); IState state = database.States.Single(s => s.Name.Equals("State0")); Assert.IsNotNull(state); Assert.IsNotNull(state.Cities.Single(sc => sc.Name.Equals("City30"))); state.Cities.Clear(); Assert.AreEqual(0, state.Cities.Count); ws.Commit(); } using (var ws = ctx.OpenWorkspace <IDatabase>(IsolationLevel.ReadOnly)) { IDatabase database = ws.Data; Assert.AreNotEqual(100, database.Cities.Count); Assert.AreEqual(0, database.Cities.Count); ICity city = database.Cities.Single(c => c.Name.Equals("City10")); Assert.IsNull(city); IUser user = database.Users.Single(u => u.Username.Equals("User1")); Assert.AreEqual("City1", user.City.Name); IState state = database.States.Single(s => s.Name.Equals("State0")); Assert.IsNotNull(state); Assert.IsNull(state.Cities.Single(sc => sc.Name.Equals("City30"))); Assert.AreEqual(0, state.Cities.Count); } }
protected bool GoToNext(Navigator n, IIndexedCollection siblings, params IIndexedCollection[] notSiblingsList) { bool result = false; if (n.ChildIndex < siblings.Count - 1) { n.Current = siblings[n.IncrementChildIndex()]; result = true; } else { foreach (IIndexedCollection notSiblings in notSiblingsList) { if (notSiblings.Count > 0) { n.Current = notSiblings[0]; n.ResetChildIndex(); result = true; break; } } } return(result); }
public void SetUp() { ctx = new Context(typeof(IDatabase)); using (var ws = ctx.OpenWorkspace <IDatabase>(IsolationLevel.Exclusive)) { IDatabase database = ws.Data; IIndexedCollection <ICity> tempCities = ws.New <IIndexedCollection <ICity> >(); // Create 100 users database.Users = ws.New <IIndexedCollection <IUser> >(); IUser user; ICity city; for (int i = 0; i < 100; i++) { user = ws.New <IUser>(); user.Username = "******" + i; user.Age = i; city = ws.New <ICity>(); city.Name = "City" + i; tempCities.Add(city); user.City = city; database.Users.Add(user); } database.States = ws.New <IIndexedCollection <IState> >(); IState state; for (int i = 0; i < 2; i++) { state = ws.New <IState>(); state.Name = "State" + i; state.Cities = tempCities; database.States.Add(state); } database.Cities = tempCities; //Create 100 products database.Products = ws.New <IIndexedCollection <IProduct> >(); IProduct product; for (int i = 0; i < 100; i++) { product = ws.New <IProduct>(); product.Name = "Product" + i; product.ProductID = i; product.Price = i; database.Products.Add(product); } // Create 100 orders database.Orders = ws.New <IIndexedCollection <IOrder> >(); for (int i = 0; i < 100; i++) { // Use LINQ to find user with appropriate age user = database.Users.Single(u => u.Age == i); // Use LINQ to find product with appropriate price product = database.Products.Single(p => p.Price.Equals(i)); var order = ws.New <IOrder>(); order.OrderID = i; order.Date = DateTime.UtcNow; order.Product = product; order.User = user; database.Orders.Add(order); } ws.Commit(); } }
protected bool GoToNext(Navigator n, IIndexedCollection siblings, params IIndexedCollection[] notSiblingsList) { bool result = false; if (n.ChildIndex < siblings.Count - 1) { n.Current = siblings[n.IncrementChildIndex()]; result = true; } else foreach (IIndexedCollection notSiblings in notSiblingsList) if (notSiblings.Count > 0) { n.Current = notSiblings[0]; n.ResetChildIndex(); result = true; break; } return result; }