Example #1
0
        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}");
        }
Example #2
0
 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();
            }
        }
Example #6
0
        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;
        }