static async Task prog_main()
        {
            var sdb = new ScaledAzureDb(new AzureDatabase[] { new AzureDatabase(File.ReadAllLines("C:\\data\\config.txt")[0], "doesntmatter") });
            var db  = new TableDb(sdb);
            /*var rdb = new RangedTableDb(new ScaledAzureDb(new AzureDatabase[] { new AzureDatabase(File.ReadAllLines("C:\\data\\config.txt")[0], "doesntmatter") }));*/

            /*await rdb["testtable"].Retrieve(50, 100, m => {
             *      foreach(var iable in m) {
             *              Console.WriteLine(iable.Key + " == " + iable["Value"]);
             *      }
             *      return true;
             * });*/

            await sdb.Retrieve(null, null, cb => {
                foreach (var iable in cb)
                {
                    Console.WriteLine("Got entity?");
                    Console.WriteLine(Encoding.UTF8.GetString(iable.Key).Substring(6));
                }
                return(true);
            });

            while (true)
            {
                string name = Console.ReadLine();
                var    id   = new Identity()
                {
                    Key = name, PublicKey = new byte[0], Used = false
                };
                await db["keys"].Upsert(id);
            }
        }
Example #2
0
        public void CreateTable(Table table)
        {
            var tableDb  = new TableDb();
            var resTable = ConvertTable(table);

            tableDb.AddTable(resTable);
        }
Example #3
0
        public void DeleteTable(Table table)
        {
            var tableDb  = new TableDb();
            var resTable = ConvertTable(table);

            tableDb.DeleteTable(resTable);
        }
Example #4
0
        public IEnumerable <Table> GetTablesWithReserved(int resId)
        {
            var tblDb  = new TableDb();
            var tables = ConvertTableListToModel(tblDb.GetTablesWithReserved(resId));

            return(tables);
        }
Example #5
0
        public void UpsertTest()
        {
            Random mrand = new Random();

            using (TableDb db = new TableDb(new MemoryDb()))
            {
                SampleEntity[] entities = new SampleEntity[5000];
                for (int i = 0; i < entities.Length; i++)
                {
                    byte[] key   = new byte[150];
                    byte[] value = new byte[1024];
                    mrand.NextBytes(value);
                    mrand.NextBytes(key);
                    entities[i] = new SampleEntity()
                    {
                        Key = key, Value = value
                    };
                }
                db["test"].Upsert(entities).Wait();
                List <SampleEntity> values = new List <SampleEntity>();
                db["test"].Retrieve <SampleEntity>(entities.Select(m => m.Key), rows => {
                    lock (values)
                    {
                        values.AddRange(rows);
                    }
                    return(true);
                }).Wait();
                Assert.AreEqual(entities.Length, values.Count);
                for (int i = 0; i < entities.Length; i++)
                {
                    CollectionAssert.AreEqual(entities[i].Value, values[i].Value);
                }
            }
        }
Example #6
0
        public int ReserveTables(int resId, int noSeats, DateTime dateTime)
        {
            var tableDb = new TableDb();
            int orderId = 0;

            try
            {
                //CONCURRENCY -- makes a transaction that stops others from entering???
                using (var scope = new TransactionScope())
                {
                    var tables = (List <Table>)GetAvailableRestaurantTables(resId, dateTime);

                    //Algorithm to find suitable tables
                    //Reserve tables found in the reserveTables list --Handle concurrency
                    var reserveTablesIds = ConvertTablesToDb(LeastNumberOfTables(tables, noSeats));

                    //Reserve the tables in the database -- Concurrency in the database layer
                    try
                    {
                        //Create a new order and get its orderId
                        orderId = CreateNewOrder(resId, noSeats, dateTime);
                        tableDb.ReserveTables(reserveTablesIds, orderId);
                    }
                    catch (NullReferenceException e)
                    {
                        Console.WriteLine(e);
                        throw;
                    }
                    catch (TransactionManagerCommunicationException e)
                    {
                        Console.WriteLine(e);
                        throw;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        throw;
                    }

                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                Console.WriteLine("TransactionAbortedException Message: {0}", ex.Message);
                return(0);
            }

            return(orderId);
        }
Example #7
0
        public void TestMethod1()
        {
            Table table = new Table();

            table.Available = true;
            table.NoOfSeats = 10;
            table.TableNo   = 1;

            TableDb tableDb = new TableDb();

            tableDb.Create(table);

            Assert.AreEqual(table, tableDb.Get(1));
        }
Example #8
0
        public IEnumerable <Table> GetTables()
        {
            var tblDb       = new TableDb();
            var tables      = tblDb.GetTables();
            var modelTables = new List <Table>();

            foreach (var table in tables)
            {
                modelTables.Add(new Table
                {
                    TableId      = table.id,
                    NoSeats      = table.noSeats,
                    Reserved     = table.reserved,
                    RestaurantId = table.restaurantId
                });
            }

            return(modelTables);
        }
Example #9
0
        public Table GetTable(Table table)
        {
            var   tblDb    = new TableDb();
            var   tbl      = tblDb.GetTable(Convert.ToInt32(table.NoSeats), Convert.ToInt32(table.RestaurantId));
            Table newTable = null;

            if (tbl != null)
            {
                newTable = new Table
                {
                    TableId      = tbl.id,
                    NoSeats      = tbl.noSeats,
                    Reserved     = tbl.reserved,
                    RestaurantId = tbl.restaurantId
                };
            }

            return(newTable);
        }
Example #10
0
        public void ReserveSingleTable(int tableId, int resId)
        {
            var tblDb = new TableDb();

            try
            {
                using (var scope = new TransactionScope())
                {
                    var orderId = CreateNewOrder(resId, 0, DateTime.Now);
                    tblDb.ReserveSingleTable(tableId, orderId);
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                Console.WriteLine("TransactionAbortedException Message: {0}", ex.Message);
                throw;
            }
        }
Example #11
0
        private IEnumerable <Table> GetAvailableRestaurantTables(int resId, DateTime dateTime)
        {
            TableDb tblDb = new TableDb();

            return(ConvertTableListToModel(tblDb.GetAvailableRestaurantTables(resId, dateTime)));
        }
Example #12
0
 public TableCtr()
 {
     _tableDb = new TableDb();
 }