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); } }
public void CreateTable(Table table) { var tableDb = new TableDb(); var resTable = ConvertTable(table); tableDb.AddTable(resTable); }
public void DeleteTable(Table table) { var tableDb = new TableDb(); var resTable = ConvertTable(table); tableDb.DeleteTable(resTable); }
public IEnumerable <Table> GetTablesWithReserved(int resId) { var tblDb = new TableDb(); var tables = ConvertTableListToModel(tblDb.GetTablesWithReserved(resId)); return(tables); }
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); } } }
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); }
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)); }
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); }
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); }
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; } }
private IEnumerable <Table> GetAvailableRestaurantTables(int resId, DateTime dateTime) { TableDb tblDb = new TableDb(); return(ConvertTableListToModel(tblDb.GetAvailableRestaurantTables(resId, dateTime))); }
public TableCtr() { _tableDb = new TableDb(); }