public static void Main()
MyDatabase QuickKart = new MyDatabase();
QuickKart.Roles.Insert(new Role() { RoleId=1,RoleName ="Admin"});
QuickKart.Roles.Insert(new Role() { RoleId=2,RoleName ="Customer" });
var list = (from p in QuickKart.Roles
select new { p.RoleId, p.RoleName }).ToList();
FiddleHelper.WriteTable("Roles",list);
QuickKart.Users.Insert(new User() { EmailId="Franken@gmail.com",RoleId =2,UserPassword="BSBEV@1234",Gender="F",DateOfBirth=new DateTime(1976,08,26),Address="Fauntleroy Circus"});
QuickKart.Users.Insert(new User() { EmailId="Henriot@gmail.com",RoleId =2,UserPassword="CACTU@1234",Gender="F",DateOfBirth=new DateTime(1971,04,09),Address="Cerrito 333" });
QuickKart.Users.Insert(new User() { EmailId="Anzio_Don@infosys.com",RoleId =1,UserPassword="don@123",Gender="M",DateOfBirth=new DateTime(1972,05,19),Address="London 5990990" });
var list1 = (from p in QuickKart.Users
select new { p.EmailId, p.UserPassword }).ToList();
FiddleHelper.WriteTable("Users",list1);
QuickKart.Categories.Insert(new Category() { CategoryId=1,CategoryName ="Motors"});
QuickKart.Categories.Insert(new Category() { CategoryId=2,CategoryName ="Fashion"});
QuickKart.Categories.Insert(new Category() { CategoryId=3,CategoryName ="Electronics"});
var list2 = (from p in QuickKart.Categories
select new { p.CategoryId, p.CategoryName }).ToList();
FiddleHelper.WriteTable("Categories",list2);
QuickKart.Products.Insert(new Product() { ProductId="P101",ProductName="Lamborghini Gallardo Spyder",CategoryId=1,Price=18000000.00,QuantityAvailable=10});
QuickKart.Products.Insert(new Product() { ProductId="P102",ProductName="BMW X1",CategoryId=1,Price=3390000.00,QuantityAvailable=10});
QuickKart.Products.Insert(new Product() { ProductId="P103",ProductName="BMW Z4",CategoryId=1,Price=6890000.00,QuantityAvailable=10});
QuickKart.Products.Insert(new Product() { ProductId="P104",ProductName="BRIONI Shirt Cotton NWT Medium",CategoryId=2,Price=2050.00,QuantityAvailable=25});
var list3 = (from p in QuickKart.Products
select new { p.ProductId, p.ProductName }).ToList();
FiddleHelper.WriteTable("Products",list3);
QuickKart.PurchaseDetails.Insert(new PurchaseDetail() { PurchaseId=1001,EmailId="Franken@gmail.com",ProductId="P101",QuantityPurchased=2,DateOfPurchase=new DateTime(2014,01,12)});
QuickKart.PurchaseDetails.Insert(new PurchaseDetail() { PurchaseId=1002,EmailId="Franken@gmail.com",ProductId="P102",QuantityPurchased=1,DateOfPurchase=new DateTime(2014,01,13)});
var list4 = (from p in QuickKart.PurchaseDetails
select new { p.PurchaseId, p.ProductId }).ToList();
FiddleHelper.WriteTable("Purchases",list4);
QuickKart.CardDetails.Insert(new CardDetail() { CardNumber=1146665296881890,NameOnCard="Manuel",CardType="M",CVVNumber=137,ExpiryDate=new DateTime(2015,03,18)});
QuickKart.CardDetails.Insert(new CardDetail() { CardNumber=1164283045453550,NameOnCard="Renate Messner",CardType="V",CVVNumber=133,ExpiryDate=new DateTime(2018,01,08)});
QuickKart.CardDetails.Insert(new CardDetail() { CardNumber=1164916976389880,NameOnCard="Rita",CardType="M",CVVNumber=588,ExpiryDate=new DateTime(2025,07,28)});
var list5 = (from p in QuickKart.CardDetails
select new { p.CardNumber, p.NameOnCard }).ToList();
FiddleHelper.WriteTable("Card Details",list5);
public class MyDatabase : Database
var roles = this.Tables.Create<Role, int>(x => x.RoleId);
var users = base.Tables.Create<User, string>(g => g.EmailId);
var categories = base.Tables.Create<Category, int>(g => g.CategoryId);
var products=base.Tables.Create<Product,string>(p=>p.ProductId);
var purchasedetails=base.Tables.Create<PurchaseDetail,double>(p=>p.PurchaseId);
var carddetails=base.Tables.Create<CardDetail,long>(p=>p.CardNumber);
this.Categories=categories;
this.PurchaseDetails=purchasedetails;
this.CardDetails=carddetails;
RelationOptions options = new RelationOptions(
var peopleGroupIdIndex = roles.CreateIndex(
new RedBlackTreeIndexFactory(),
var peopleGroupIdIndex1 = users.CreateIndex(
new RedBlackTreeIndexFactory(),
var peopleGroupIdIndex2 = categories.CreateIndex(
new RedBlackTreeIndexFactory(),
var peopleGroupIdIndex3 = products.CreateIndex(
new RedBlackTreeIndexFactory(),
var peopleGroupIdIndex4 = purchasedetails.CreateIndex(
new RedBlackTreeIndexFactory(),
var peopleGroupIdIndex5 = carddetails.CreateIndex(
new RedBlackTreeIndexFactory(),
public ITable<Role> Roles { get; private set; }
public ITable<User> Users { get; private set; }
public ITable<Category> Categories { get; private set; }
public ITable<Product> Products {get; private set;}
public ITable<PurchaseDetail> PurchaseDetails {get; private set;}
public ITable<CardDetail> CardDetails {get; private set;}
public int RoleId { get; set; }
public string RoleName { get; set; }
public string EmailId {get; set;}
public string UserPassword {get; set;}
public int? RoleId {get; set;}
public string Gender {get; set;}
public DateTime DateOfBirth {get; set;}
public string Address{get; set;}
public int CategoryId {get; set;}
public string CategoryName {get; set;}
public string ProductId {get;set;}
public string ProductName {get; set;}
public int? CategoryId {get; set;}
public double Price {get; set;}
public int QuantityAvailable {get; set;}
public class PurchaseDetail
public double PurchaseId {get; set;}
public string EmailId{get; set;}
public string ProductId {get; set;}
public int QuantityPurchased{get; set;}
public DateTime DateOfPurchase{get; set;}
public long CardNumber {get; set;}
public string NameOnCard {get; set;}
public string CardType{get; set;}
public int CVVNumber{get; set;}
public DateTime ExpiryDate{get; set;}
public float Balance{get; set;}