public Boolean InsertSalesInvoices(int number, RaptorDBClient client)
        {
            Boolean rtn = false;
            SalesInvoice invoice = null;

            lock (_lock)
            {
                DateTime dt = FastDateTime.Now;
                int count = number;

                Random r = new Random();
                for (int i = 0; i < count; i++)
                {
                    invoice = new SalesInvoice()
                    {
                        Date = FastDateTime.Now.AddMinutes(r.Next(60)),
                        Serial = i % 10000,
                        CustomerName = "Customer Name " + i % 10,
                        NoCase = "Case " + i % 10,
                        Status = (byte)(i % 4),
                        Address = "Customer Address " + i % 10,
                        Approved = i % 100 == 0 ? true : false
                    };

                    invoice.Items = new List<LineItem>();

                    for (int k = 0; k < 5; k++)
                        invoice.Items.Add(new LineItem() { Product = "Product " + k, Discount = 0, Price = 10 + k, QTY = 1 + k });

                    rtn = client.Save(invoice.ID, invoice);
                }
                Console.WriteLine("Insert done in {0} seconds", FastDateTime.Now.Subtract(dt).TotalSeconds);
            }
            return rtn;
        }
Example #2
0
        public Shell()
        {
            Console.WriteLine("RaptorDB Test One\n");
            try
            {
                //This Solution contains slightly modified RaptorDB sources.

                //For testing Client/Server mode, it's easy to start the server here.
                //It would be good if the server returned indication of a successful start.
                //The directories will be automatically created.
                //RaptorDB is self-initialising.
                //Server Log will be in C:\RaptorDB\DB\Logs
                _raptorDBServer = new RaptorDBServer(90, @"C:\RaptorDB\DB");

                //Change to false to avoid repeating these tests.
            #if true
                //New feature. Test for wrong/non-listening port
                _raptorDBClient = new RaptorDBClient("localhost", 91, "admin", "admin");

                var err1 = _raptorDBClient.LastErrorMessage;
                if (!String.IsNullOrEmpty(err1))
                {
                    Console.WriteLine("Expected Error: {0}\n", err1);
                   // return;
                }

                //New feature. Test for non-authentication
                _raptorDBClient = new RaptorDBClient("localhost", 90, "admin", "adminxx");

                var err2 = _raptorDBClient.LastErrorMessage;
                if (!String.IsNullOrEmpty(err2))
                {
                    Console.WriteLine("Expected Error: {0}\n", err2);
                    //return;
                }
            #endif

                //New feature. Now Authenticate Correctly. Authentication has been added to the constructor.
                _raptorDBClient = new RaptorDBClient("localhost", 90, "admin", "admin");
                var err3 = _raptorDBClient.LastErrorMessage;
                if (!String.IsNullOrEmpty(err3))
                {
                    Console.WriteLine("UnExpected Error: {0}\n", err3);
                    return;
                }
                else
                    Console.WriteLine("Let's assume we have authenticated correctly.\n");

                //Add a User.
                Random r = new Random();
                var user = "******" + r.Next(10000).ToString();
                var rtn1 = _raptorDBClient.AddUser(user, "", user);
                if (!rtn1)
                    Console.WriteLine("User {0} already exists or could not be created.\n", user);
                else
                    Console.WriteLine("User {0} created successfully.\n", user);
                Console.WriteLine();

                //New feature. List all Users
                var users = _raptorDBClient.GetUsers();
                if (users != null)
                {
                    Console.WriteLine("The following Users are defined:-\n");
                    foreach (var user2 in users)
                    {
                        Console.WriteLine("\t{0}", user2);
                    }
                }
                else
                {
                    Console.WriteLine("Gettings Users failed with error: {0}\n", _raptorDBClient.LastErrorMessage);
                }
                Console.WriteLine();

                //Add 100 Sales Invoices each time the program runs.
                var lsd = new LoadSeedDocuments();
                var rtn2 = lsd.InsertSalesInvoices(100, _raptorDBClient);

                if (rtn2)
                    Console.WriteLine("Documents inserted correctly.\n");
                else
                    Console.WriteLine("Document insert failed.\n");

                //New feature. Show the current views defined
                var views = _raptorDBClient.GetViews();
                if (views != null)
                {
                    Console.WriteLine("The following Views are defined:-\n");
                    foreach (var view in views)
                    {
                        Console.WriteLine("\t{0} with Count = {1}", view, _raptorDBClient.Count(view as String));
                    }
                }
                else
                {
                    Console.WriteLine("Gettings Views failed with error: {0}\n", _raptorDBClient.LastErrorMessage);
                }
                Console.WriteLine();

                Console.WriteLine("A string Query returning all rows");
                var results1 = _raptorDBClient.Query(typeof(SalesInvoiceView).Name);
                if (results1 != null)
                {
                    Console.WriteLine("Query returned {0} rows. Showing 10 ...\n", results1.Count);
                    for (int c1 = 0; c1 < 10; c1++)
                    {
                        var row = results1.Rows[c1] as SalesInvoiceView.RowSchema;
                        if (row != null)
                        {
                            Console.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", row.docid.ToString(), row.CustomerName, row.Address, row.Date, row.NoCase, row.Serial, row.Status, row.Approved);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Query failed with error: {0}\n", _raptorDBClient.LastErrorMessage);
                }
                Console.WriteLine();

                Console.WriteLine("A string Query returning filtered rows");
                //Multiple will be returned depending on how many times this program has been run.
                var results2 = _raptorDBClient.Query(typeof(SalesInvoiceView).Name, "CustomerName=\"Customer Name 9\"");
                if (results2 != null)
                {
                    Console.WriteLine("Query returned {0} rows. Showing 10 ...\n", results2.Count);
                    if (results2.Count > 0)
                    {
                        for (int c1 = 0; c1 < 10; c1++)
                        {
                            var row = results2.Rows[c1] as SalesInvoiceView.RowSchema;
                            if (row != null)
                            {
                                Console.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", row.docid.ToString(), row.CustomerName, row.Address, row.Date, row.NoCase, row.Serial, row.Status, row.Approved);
                            }
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Query failed with error: {0}\n", _raptorDBClient.LastErrorMessage);
                }
                Console.WriteLine();

                Console.WriteLine("A typed and filtered Query");
                var results3 = _raptorDBClient.Query<NewSalesInvoiceView.RowSchema>(x => x.Product == "Product 4" );
                if (results3 != null)
                {
                    Console.WriteLine("Query returned {0} rows.\n", results3.Count);
                }
                else
                {
                    Console.WriteLine("Query failed with error: {0}\n", _raptorDBClient.LastErrorMessage);
                }
                Console.WriteLine();

            }
            catch (Exception ex)
            {
                Console.WriteLine("Untrapped Exception: {0}\n", ex.Message);
            }
            finally
            {
                _raptorDBServer.Shutdown();
                _raptorDBClient.Shutdown();
            }
        }