示例#1
0
 public void SaveOrder(Order2 order)
 {
     lock (fileStore)
     {
         fileStore[order.OrderNumber] = order;
     }
 }
示例#2
0
        public void Put(int id, [FromBody] Order2 value, int Qty, int price)
        {
            Order2 update = dc.Order2.Single(m => m.Bid == id);

            update.Bid      = value.Bid;
            update.Pname    = value.Pname;
            update.Quantity = value.Quantity;
            update.Price    = value.Price;
            dc.SaveChanges();
        }
示例#3
0
        public RedeemResponse Redeem(string orderNumber, string email)
        {
            OrderDB db    = new OrderDB();
            Order2  order = db.GetOrder(orderNumber);

            if (order == null)
            {
                return(new RedeemResponse
                {
                    Message = "",
                    Success = false
                });
            }
            else if (String.IsNullOrWhiteSpace(email) || !Regex.IsMatch(email, "[a-zA-Z0-9]*@[a-zA-Z0-9]*\\.{1}[a-zA-Z]{1,}"))
            {
                return(new RedeemResponse
                {
                    Success = false,
                    Message = "Email required to redeem password."
                });
            }
            else if (order.EMail != null && !order.EMail.Equals(email))
            {
                return(new RedeemResponse
                {
                    Success = false,
                    Message = "An email has already been set."
                });
            }

            order.EMail = email;

            if (order.PasswordClaimed == null)
            {
                order.PasswordClaimed = DateTime.Now;
                db.SaveOrder(order);
            }

            RedeemResponse resp = new RedeemResponse();

            resp.OrderInfoText = "Addr: " + order.Address + "\n" +
                                 "Mail: " + order.EMail + "\n" +
                                 "Name: " + order.Name + "\n" +
                                 "Password: "******"\n" +
                                 (order.PasswordClaimed != null ? "REDEEMED" : "");

            resp.Success = true;

            resp.Message = "";

            return(resp);
        }
示例#4
0
        public void LastLoadedOrderPaidAndSent()
        {
            OrderDB db           = new OrderDB();
            Order2  lastOrder    = SimpleRandomLoader.GetLastLoadedOrder();
            Order2  paidWebOrder = db.GetNextPaidOrder();

            paidWebOrder.OrderSent = true;
            paidWebOrder.Address   = lastOrder.Address;
            paidWebOrder.Password  = lastOrder.Password;
            db.SaveOrder(paidWebOrder);
            db.DeleteOrder(lastOrder.OrderNumber);
            waitingPaidOrder = db.GetNextPaidOrder();
        }
示例#5
0
        private void SynchWithWebsite()
        {
            //Get latest web order in database:
            lock (fileStore)
            {
                int           lastWebOrder = 0;
                int           holeIndex    = 0;
                bool          go           = true;
                List <string> keys         = fileStore.Keys;

                //Will not work.
                while (go)
                {
                    if (knownHoleStarts.Contains(lastWebOrder))
                    {
                        lastWebOrder = knownHoleEnds[holeIndex];
                        holeIndex++;
                    }

                    Order2 order = fileStore[OrderConverters.GetWebOrderNumber(lastWebOrder + 1)];

                    if (order == null)
                    {
                        break;
                    }

                    if (order.WebOrder) //Should always be true... TODO: Better error handling...
                    {
                        lastWebOrder = Math.Max(order.WebId ?? 0, lastWebOrder);
                    }
                }

                WebOrder webOrder = WebApiConnector.GetWebOrderByNumber(lastWebOrder + 1);
                Order2   newOrder;
                while (webOrder != null)
                {
                    if (webOrder == null)
                    {
                        break;
                    }

                    newOrder = OrderConverters.ConvertWebOrderToDbOrder(webOrder);
                    fileStore[newOrder.OrderNumber] = newOrder;

                    webOrder = WebApiConnector.GetWebOrderByNumber(webOrder.Id + 1);
                }
            }

            isSynchedWithWeb = true;
        }
示例#6
0
        public void MapFieldTest2()
        {
            SourceObject2 source = new SourceObject2();
            Order2        order  = Map.ObjectToObject <Order2>(source);

            Assert.AreEqual("1 Main", order.BillingAddress.Street);
            Assert.AreEqual("Bigtown", order.BillingAddress.City);
            Assert.AreEqual("XX", order.BillingAddress.State);
            Assert.AreEqual("00000", order.BillingAddress.Zip);

            Assert.AreEqual("2 Main", order.ShippingAddress.Street);
            Assert.AreEqual("Bigtown", order.ShippingAddress.City);
            Assert.AreEqual("XX", order.ShippingAddress.State);
            Assert.AreEqual("00000", order.ShippingAddress.Zip);
        }
        static void Main(string[] args)
        {
            ////////////////////////// Objects //////////////////////
            Location2   P1              = new Location2();
            ConsoleMenu menus           = new ConsoleMenu();
            Order2      orderRepository = new Order2();
            var         repo            = new OrderRepository(new PizzaPalacedbContext());

            /////////////////////////////////////////////////////////
            //var repo = new OrderRepository(new PizzaPalacedbContext());
            bool a = true;

            while (a)
            {
                ///////////////// call first menu [ WELCOME ] //////////////////////


                //Console.WriteLine("Enter Name: ");
                //string user = Console.ReadLine();
                //Console.WriteLine("Enter LastName: ");
                //string last = Console.ReadLine();
                //repo.GetUserOrder(user, last);

                //menus.WellcomeMenu();
                //repo.GetUserOrder("Kevin", "Ramos");

                //int location_id = 1;
                //var locations = repo.GetLocationOrders(location_id);
                //foreach (var item in locations)
                //{
                //    Console.WriteLine("Location: 1 " + " Order No. " + item.OrderId + " \n Order Date & time: " + item.DateTimeOrder);
                //}
                //Console.ReadLine();

                repo.SugestedOrder("Angel", "Guzman");

                /////////////////////////////////////////////////////////////////

                Console.WriteLine("");
                Console.WriteLine("");
                Console.WriteLine("DONE!!");
                Console.WriteLine("");
                Console.WriteLine();
                Console.ReadLine();
                a = false;
                ////////////////////////////////////////////////////////////////////
            }
        }
示例#8
0
        public void CleanRedeemedPasswords()
        {
            lock (fileStore)
            {
                List <string> keys = fileStore.Keys;
                foreach (string key in keys)
                {
                    Order2 order = fileStore[key];
                    if (DateTime.Now - order.PasswordClaimed > TimeSpan.FromDays(30))
                    {
                        order.Password = "";
                    }

                    fileStore[key] = order;
                }
            }
        }
示例#9
0
        private void LoadData()
        {
            Stream stream = System.Reflection.Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("Telerik.Examples.WinControls.PivotGrid.Settings.PivotData.txt");

            using (StreamReader streamReader = new StreamReader(stream))
            {
                while (streamReader.Peek() != -1)
                {
                    string[] items = streamReader.ReadLine().Split('\t');
                    Order2   o     = new Order2()
                    {
                        Date          = DateTime.Parse(items[0], System.Globalization.CultureInfo.InvariantCulture),
                        Product       = items[1],
                        Quantity      = int.Parse(items[2], System.Globalization.CultureInfo.InvariantCulture),
                        Net           = double.Parse(items[3], System.Globalization.CultureInfo.InvariantCulture),
                        Promotion     = items[4],
                        Advertisement = items[5]
                    };
                    orders.Add(o);
                }
            }
        }
示例#10
0
        public string SearchOrder(string orderNumber)
        {
            if (orderNumber == null || orderNumber.Length != 8)
            {
                return("Type an order number above...");
            }

            OrderDB db    = new OrderDB();
            Order2  order = db.GetOrder(orderNumber);

            if (order == null)
            {
                return("Type an order number above...");
            }

            db.CleanRedeemedPasswords();

            return("Addr: " + order.Address + "\n" +
                   "Mail: " + order.EMail + "\n" +
                   "Name: " + order.Name + "\n" +
                   "Password: "******"\n" +
                   (order.PasswordClaimed != null ? "REDEEMED" : ""));
        }
示例#11
0
        public Order2 GetNextPaidOrder()
        {
            if (!isSynchedWithWeb)
            {
                SynchWithWebsite();
            }

            lock (fileStore)
            {
                Order2 order        = null; //= fileStore[OrderConverters.GetWebOrderNumber(4)];
                int    lastWebOrder = 0;
                int    holeIndex    = 0;
                while (true)
                {
                    if (knownHoleStarts.Contains(lastWebOrder))
                    {
                        lastWebOrder = knownHoleEnds[holeIndex];
                        holeIndex++;
                    }

                    order = fileStore[OrderConverters.GetWebOrderNumber(lastWebOrder + 1)];
                    lastWebOrder++;
                    if (order == null)
                    {
                        break;
                    }

                    if (order.OrderPaid != null && order.OrderSent == false)
                    {
                        return(order);
                    }
                }
            }

            return(null);
        }
示例#12
0
        /// <summary>
        /// Returns null at success otherwise errormessage.
        /// </summary>
        public static string ModifyHtmlFile(CardSettings settings, Order2 waitingPaidOrder)
        {
            byte[] file       = System.IO.File.ReadAllBytes(originalPath);
            string fileString = Encoding.UTF8.GetString(file);

            string errorMsg = InsertString(out fileString, fileString, settings.AddressString, "address");

            if (errorMsg != null || fileString == null)
            {
                return(errorMsg ?? "No insert result error.");
            }

            errorMsg = UpdateQRImage(settings.AddressString);
            if (errorMsg != null)
            {
                return(errorMsg);
            }

            errorMsg = InsertString(out fileString, fileString, settings.AESEncryptedPrivateKey, "privatekey");
            if (errorMsg != null || fileString == null)
            {
                return(errorMsg ?? "No insert result error.");
            }

            errorMsg = InsertString(out fileString, fileString, settings.displayKeyString, "vignerekey");
            if (errorMsg != null || fileString == null)
            {
                return(errorMsg ?? "No insert result error.");
            }

            errorMsg = InsertString(out fileString, fileString,
                                    waitingPaidOrder != null ? waitingPaidOrder.OrderNumber : settings.OrderNumber,
                                    "ordernumber");
            if (errorMsg != null || fileString == null)
            {
                return(errorMsg ?? "No insert result error.");
            }

            errorMsg = InsertString(out fileString, fileString, settings.PinValue.ToString(), "pin");
            if (errorMsg != null || fileString == null)
            {
                return(errorMsg ?? "No insert result error.");
            }

            errorMsg = InsertString(out fileString, fileString, settings.PukValue.ToString(), "puk");
            if (errorMsg != null || fileString == null)
            {
                return(errorMsg ?? "No insert result error.");
            }

            errorMsg = InsertString(out fileString, fileString, DateTime.Now.ToString("dd-MM-yyyy"), "date");
            if (errorMsg != null || fileString == null)
            {
                return(errorMsg ?? "No insert result error.");
            }

            for (int y = 0; y < settings.VignereTable.Length; y++)
            {
                for (int x = 0; x < settings.VignereTable[y].Length; x++)
                {
                    errorMsg = InsertString(out fileString, fileString, settings.VignereTable[y][x].ToString(), "x" + x + "y" + y);
                    if (errorMsg != null || fileString == null)
                    {
                        return(errorMsg ?? "No insert result error.");
                    }
                }
            }

            string testString = null;

            while (testString == null || testString.Contains(">>"))
            {
                FileStream fs = new FileStream(outputPath, FileMode.OpenOrCreate);
                file = Encoding.UTF8.GetBytes(fileString);
                fs.Write(file, 0, file.Length);
                fs.SetLength(file.Length);
                fs.Flush(true);
                fs.Close();
                file       = File.ReadAllBytes(outputPath);
                testString = Encoding.UTF8.GetString(file);
            }

            return(null);
        }
示例#13
0
 public void CheckoutDateNowTest()
 {
     Assert.IsNull(Order2.Date);
     Order2.CheckoutDateNow();
     Assert.IsNotNull(Order2.Date);
 }
        public static SimpleLoadResponse ExecuteLoad(LoadSettings loadSettings, Order2 waitingPaidOrder)
        {
            //1. Generate crypto values:
            CardSettings settings = CryptoHelper.GetRandomSettings();

            //2. Fill letter:
            string errorMessage = HtmlDocumentCreator.ModifyHtmlFile(settings, waitingPaidOrder);

            if (errorMessage != null)
            {
                lastLoaded = null;
                return(new SimpleLoadResponse {
                    ErrorMessage = errorMessage
                });
            }

            //3. Send to printer:
            //Happens automatically in main window on ExecuteLoad success.

            //4. Email requires pre-known address... type-able to begin with? Will consider... it IS a lot to insert bits and send an email.
            //TODO

            //5. Insert variables into card image file:
            errorMessage = CardFileCreator.ModifyCardFile(settings, loadSettings);
            if (errorMessage != null)
            {
                lastLoaded = null;
                return(new SimpleLoadResponse {
                    ErrorMessage = errorMessage
                });
            }


            //6. Load card:
            errorMessage = CardLoader.LoadCard(loadSettings);
            if (errorMessage != null)
            {
                lastLoaded = null;
                return(new SimpleLoadResponse {
                    ErrorMessage = errorMessage
                });
            }

            //7 Delete the generated card settings file containing the private key:
            errorMessage = CardLoader.DeleteCardFile(CardFileCreator.outputPath);
            if (errorMessage != null)
            {
                lastLoaded = null;
                return(new SimpleLoadResponse {
                    ErrorMessage = errorMessage
                });
            }

            //8. Save order to simple database.
            if (!loadSettings.TestSettings)
            {
                OrderDB db    = new OrderDB();
                Order2  order = new Order2
                {
                    OrderNumber = settings.OrderNumber,
                    Password    = settings.aesPassword,
                    Address     = settings.AddressString,
                    WebOrder    = false
                };
                db.SaveOrder(order);
                lastLoaded = order;
            }

            return(new SimpleLoadResponse
            {
                Success = true,
                ErrorMessage = null
            });
        }
示例#15
0
        private async void BookNewOrder()
        {
            try
            {
                var streetaddress       = txtAdress.Text;
                var postalcode          = txtPostalCode.Text;
                int convertedpostalcode = int.Parse(postalcode);
                var city = txtCity.Text;

                string[] subs = streetaddress.Split(' ');

                foreach (var sub in subs)
                {
                    Console.WriteLine($"Substring: {sub}");
                }


                string streetname   = subs[0];
                string streetNumber = subs[1];


                var additionalServiceCodeStandard = new List <string>
                {
                    "A1"
                };
                var itemList = new List <long>
                {
                    373500489530470000
                };



                List <PickupService> newist = new List <PickupService>();

                newist.Add(new PickupService()
                {
                    typeOfItem = "parcel", noUnits = 1
                });



                Service Servicebody = new Service
                {
                    basicServiceCode      = "19",
                    additionalServiceCode = new List <string>
                    {
                        "A1"
                    }
                };



                Service2 service2 = new Service2
                {
                    service = Servicebody
                };

                Shipment2 shipment2 = new Shipment2
                {
                    shipment = service2
                };

                var Shipmentbody = new Shipment
                {
                    items = itemList
                };
                var LocationBody = new Location
                {
                    place        = "Company name or information about pickup place e.g.garage",
                    streetName   = streetname,
                    streetNumber = streetNumber,
                    postalCode   = convertedpostalcode,
                    city         = city,
                    countryCode  = "SE"
                };

                Location2 location2 = new Location2
                {
                    location = LocationBody
                };

                var OrderBody = new Order
                {
                    customerNumber = "1234567891",
                    orderReference = "Ref-1212122A",
                    contactName    = "Nils Andersson",
                    contactEmail   = "*****@*****.**",
                    phoneNumber    = "+4670788888",
                    smsNumber      = "+4670788888",
                    entryCode      = "8216"
                };

                var Order2 = new Order2
                {
                    order = OrderBody
                };

                var PickUpBody = new PickupService
                {
                    typeOfItem = "parcel",
                    noUnits    = 1
                };

                var PickUp2 = new PickUp2
                {
                    pickups = newist
                };


                var datesandtimesBody = new DateAndTimes
                {
                    readyPickupDate    = new DateTime(2021, 5, 13),
                    latestPickupDate   = new DateTime(2021, 5, 13),
                    earliestPickupDate = new DateTime(2021, 5, 13)
                };

                var datesandtimes2 = new DateAndTimes2
                {
                    DateAndTimes = datesandtimesBody
                };



                var client = new RestClient("https://api2.postnord.com/rest/order/v1/pickup/SE?apikey=0ba91457361a67d1495aefa8519ba3cb");
                client.Timeout = -1;
                var request = new RestRequest(Method.POST);
                // request.AddParameter("text/plain", "{\r\n  \"shipment\": {\r\n    \"service\": {\r\n      \"basicServiceCode\": \"19\",\r\n      \"additionalServiceCode\": [\r\n        \"A1\"\r\n      ]\r\n    },\r\n    \"items\": [\r\n      373500489530470000\r\n    ]\r\n  },\r\n  \"location\": {\r\n    \"place\": \"Company name or information about pickup place e.g. garage\",\r\n    \"streetName\": \"streetname\",\r\n    \"streetNumber\": \"streetNumber\",\r\n    \"postalCode\": postalcode,\r\n    \"city\": \"txtCity\",\r\n    \"countryCode\": \"SE\"\r\n  },\r\n  \"order\": {\r\n    \"customerNumber\": \"1234567891\",\r\n    \"orderReference\": \"Ref-1212122A\",\r\n    \"contactName\": \"Nils Andersson\",\r\n    \"contactEmail\": \"[email protected]\",\r\n    \"phoneNumber\": \"+4670788888\",\r\n    \"smsNumber\": \"+4670788888\",\r\n    \"entryCode\": \"8216\"\r\n  },\r\n  \"pickup\": [\r\n    {\r\n      \"typeOfItem\": \"parcel\",\r\n      \"noUnits\": 1\r\n    }\r\n  ],\r\n  \"dateAndTimes\": {\r\n    \"readyPickupDate\": \"2020-11-17T09:52:07.929Z\",\r\n    \"latestPickupDate\": \"2020-11-17T09:52:07.929Z\",\r\n    \"earliestPickupDate\": \"2020-11-17T09:52:07.929Z\"\r\n  }\r\n}", ParameterType.RequestBody);


                request.AddHeader("Accept", "application/json");
                request.Parameters.Clear();



                string json  = JsonConvert.SerializeObject(shipment2, Formatting.Indented);
                string json2 = JsonConvert.SerializeObject(Shipmentbody, Formatting.Indented);
                string json3 = JsonConvert.SerializeObject(location2, Formatting.Indented);
                string json4 = JsonConvert.SerializeObject(Order2, Formatting.Indented);
                string json5 = JsonConvert.SerializeObject(PickUp2, Formatting.Indented);
                string json6 = JsonConvert.SerializeObject(datesandtimes2, Formatting.Indented);

                await DisplayAlert("Alert", json + json2 + json3 + json4 + json5 + json6, "OK");

                Console.WriteLine(json + json2 + json3 + json4 + json5 + json6);

                request.RequestFormat = DataFormat.Json;

                request.AddJsonBody(shipment2);
                request.AddJsonBody(Shipmentbody);
                request.AddJsonBody(location2);
                request.AddJsonBody(Order2);
                request.AddJsonBody(PickUp2);
                request.AddJsonBody(datesandtimes2);

                IRestResponse response = client.Execute(request);
                await DisplayAlert("Alert", response.Content.ToString(), "OK");
            }
            catch (Exception ex)

            {
                Console.WriteLine(ex);
                await DisplayAlert("Alert!", "Incorrect adress, try again", "OK");
            }
        }
示例#16
0
 public void Post([FromBody] Order2 value)
 {
     dc.Order2.Add(value);
     dc.SaveChanges();
 }
        public void Includes()
        {
            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_1_0
                    Order order = session
                                  .Include <Order>(x => x.CustomerId)
                                  .Load("orders/1234");

                    // this will not require querying the server!
                    Customer customer = session
                                        .Load <Customer>(order.CustomerId);
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_1_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "orders/1234" }, includes: new[] { "CustomerId" });

                RavenJObject order    = result.Results[0];
                RavenJObject customer = result.Includes[0];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_2_0
                    Order[] orders = session
                                     .Include <Order>(x => x.CustomerId)
                                     .Load("orders/1234", "orders/4321");

                    foreach (Order order in orders)
                    {
                        // this will not require querying the server!
                        Customer customer = session.Load <Customer>(order.CustomerId);
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_2_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "orders/1234", "orders/4321" }, includes: new[] { "CustomerId" });

                List <RavenJObject> orders    = result.Results;
                List <RavenJObject> customers = result.Includes;
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_3_0
                    IList <Order> orders = session
                                           .Query <Order, Orders_ByTotalPrice>()
                                           .Customize(x => x.Include <Order>(o => o.CustomerId))
                                           .Where(x => x.TotalPrice > 100)
                                           .ToList();

                    foreach (Order order in orders)
                    {
                        // this will not require querying the server!
                        Customer customer = session
                                            .Load <Customer>(order.CustomerId);
                    }
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region includes_3_1
                    IList <Order> orders = session
                                           .Advanced
                                           .DocumentQuery <Order, Orders_ByTotalPrice>()
                                           .Include(x => x.CustomerId)
                                           .WhereGreaterThan(x => x.TotalPrice, 100)
                                           .ToList();

                    foreach (Order order in orders)
                    {
                        // this will not require querying the server!
                        Customer customer = session
                                            .Load <Customer>(order.CustomerId);
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_3_2
                QueryResult result = store
                                     .DatabaseCommands
                                     .Query(
                    "Orders/ByTotalPrice",
                    new IndexQuery
                {
                    Query = "TotalPrice_Range:{Ix100 TO NULL}"
                },
                    includes: new[] { "CustomerId" });

                List <RavenJObject> orders    = result.Results;
                List <RavenJObject> customers = result.Includes;
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_4_0
                    Order order = session
                                  .Include <Order>(x => x.SupplierIds)
                                  .Load("orders/1234");

                    foreach (Guid supplierId in order.SupplierIds)
                    {
                        // this will not require querying the server!
                        Supplier supplier = session.Load <Supplier>(supplierId);
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_4_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "orders/1234" }, includes: new[] { "SupplierIds" });

                RavenJObject order    = result.Results[0];
                RavenJObject customer = result.Includes[0];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_5_0
                    Order[] orders = session
                                     .Include <Order>(x => x.SupplierIds)
                                     .Load("orders/1234", "orders/4321");

                    foreach (Order order in orders)
                    {
                        foreach (Guid supplierId in order.SupplierIds)
                        {
                            // this will not require querying the server!
                            Supplier supplier = session.Load <Supplier>(supplierId);
                        }
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_5_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "orders/1234", "orders/4321" }, includes: new[] { "SupplierIds" });

                List <RavenJObject> orders    = result.Results;
                List <RavenJObject> customers = result.Includes;
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_6_0
                    Order order = session
                                  .Include <Order>(x => x.Referral.CustomerId)
                                  .Load("orders/1234");

                    // this will not require querying the server!
                    Customer customer = session.Load <Customer>(order.Referral.CustomerId);
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region includes_6_2
                    Order order = session.Include("Referral.CustomerId")
                                  .Load <Order>("orders/1234");

                    // this will not require querying the server!
                    Customer customer = session.Load <Customer>(order.Referral.CustomerId);
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_6_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "orders/1234" }, includes: new[] { "Referral.CustomerId" });

                RavenJObject order    = result.Results[0];
                RavenJObject customer = result.Includes[0];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_7_0
                    Order order = session
                                  .Include <Order>(x => x.LineItems.Select(li => li.ProductId))
                                  .Load("orders/1234");

                    foreach (LineItem lineItem in order.LineItems)
                    {
                        // this will not require querying the server!
                        Product product = session.Load <Product>(lineItem.ProductId);
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_7_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "orders/1234" }, includes: new[] { "LineItems.,ProductId" });

                RavenJObject order   = result.Results[0];
                RavenJObject product = result.Includes[0];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_8_0
                    Order2 order = session
                                   .Include <Order2, Customer2>(x => x.CustomerId)
                                   .Load("order2s/1234");

                    // this will not require querying the server!
                    Customer2 customer = session.Load <Customer2>(order.CustomerId);
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_8_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "order2s/1234" }, includes: new[] { "CustomerId" });

                RavenJObject order    = result.Results[0];
                RavenJObject customer = result.Includes[0];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_8_2
                    IList <Order2> orders = session
                                            .Query <Order2, Order2s_ByTotalPrice>()
                                            .Customize(x => x.Include <Order2, Customer2>(o => o.CustomerId))
                                            .Where(x => x.TotalPrice > 100)
                                            .ToList();

                    foreach (Order2 order in orders)
                    {
                        // this will not require querying the server!
                        Customer2 customer = session.Load <Customer2>(order.CustomerId);
                    }
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region includes_8_3
                    IList <Order2> orders = session
                                            .Advanced
                                            .DocumentQuery <Order2, Order2s_ByTotalPrice>()
                                            .Include("CustomerId")
                                            .WhereGreaterThan(x => x.TotalPrice, 100)
                                            .ToList();

                    foreach (Order2 order in orders)
                    {
                        // this will not require querying the server!
                        Customer2 customer = session.Load <Customer2>(order.CustomerId);
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_8_4
                QueryResult result = store
                                     .DatabaseCommands
                                     .Query(
                    "Order2s/ByTotalPrice",
                    new IndexQuery
                {
                    Query = "TotalPrice_Range:{Ix100 TO NULL}"
                },
                    includes: new[] { "CustomerId" });

                List <RavenJObject> orders    = result.Results;
                List <RavenJObject> customers = result.Includes;
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_8_6
                    Order2 order = session
                                   .Include <Order2, Supplier>(x => x.SupplierIds)
                                   .Load("order2s/1234");

                    foreach (Guid supplierId in order.SupplierIds)
                    {
                        // this will not require querying the server!
                        Supplier supplier = session.Load <Supplier>(supplierId);
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_8_7
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "order2s/1234" }, includes: new[] { "SupplierIds" });

                RavenJObject        order     = result.Results[0];
                List <RavenJObject> suppliers = result.Includes;
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_8_8
                    Order2 order = session
                                   .Include <Order2, Customer2>(x => x.Referral.CustomerId)
                                   .Load("order2s/1234");

                    // this will not require querying the server!
                    Customer2 customer = session.Load <Customer2>(order.Referral.CustomerId);
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_8_9
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "order2s/1234" }, includes: new[] { "Referral.CustomerId" });

                RavenJObject order    = result.Results[0];
                RavenJObject customer = result.Includes[0];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_8_10
                    Order2 order = session
                                   .Include <Order2, Product>(x => x.LineItems.Select(li => li.ProductId))
                                   .Load("orders/1234");

                    foreach (LineItem lineItem in order.LineItems)
                    {
                        // this will not require querying the server!
                        Product product = session.Load <Product>(lineItem.ProductId);
                    }
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_8_11
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "order2s/1234" }, includes: new[] { "LineItems.,ProductId" });

                RavenJObject        order    = result.Results[0];
                List <RavenJObject> products = result.Includes;
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_9_0
                    Order3 order = session
                                   .Include <Order3, Customer>(x => x.Customer.Id)
                                   .Load("orders/1234");

                    // this will not require querying the server!
                    Customer customer = session.Load <Customer>(order.Customer.Id);
                    #endregion
                }
            }

            using (var store = new DocumentStore())
            {
                #region includes_9_1
                MultiLoadResult result = store
                                         .DatabaseCommands
                                         .Get(ids: new[] { "orders/1234" }, includes: new[] { "Customer.Id" });

                RavenJObject order    = result.Results[0];
                RavenJObject customer = result.Includes[0];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_10_0
                    session.Store(
                        new Person
                    {
                        Id         = "people/1",
                        Name       = "John Doe",
                        Attributes = new Dictionary <string, string>
                        {
                            { "Mother", "people/2" },
                            { "Father", "people/3" }
                        }
                    });

                    session.Store(
                        new Person
                    {
                        Id         = "people/2",
                        Name       = "Helen Doe",
                        Attributes = new Dictionary <string, string>()
                    });

                    session.Store(
                        new Person
                    {
                        Id         = "people/3",
                        Name       = "George Doe",
                        Attributes = new Dictionary <string, string>()
                    });
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region includes_10_1
                    var person = session
                                 .Include <Person>(x => x.Attributes.Values)
                                 .Load("people/1");

                    var mother = session
                                 .Load <Person>(person.Attributes["Mother"]);

                    var father = session
                                 .Load <Person>(person.Attributes["Father"]);

                    Assert.Equal(1, session.Advanced.NumberOfRequests);
                    #endregion
                }

                #region includes_10_2
                var result = store
                             .DatabaseCommands
                             .Get(new[] { "people/1" }, new[] { "Attributes.$Values" });

                var include1 = result.Includes[0];
                var include2 = result.Includes[1];
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_10_3
                    var person = session
                                 .Include <Person>(x => x.Attributes.Keys)
                                 .Load("people/1");
                    #endregion
                }

                #region includes_10_4
                var result = store
                             .DatabaseCommands
                             .Get(new[] { "people/1" }, new[] { "Attributes.$Keys" });
                #endregion
            }

            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region includes_11_0
                    session.Store(
                        new PersonWithAttribute
                    {
                        Id         = "people/1",
                        Name       = "John Doe",
                        Attributes = new Dictionary <string, Attribute>
                        {
                            { "Mother", new Attribute {
                                  Ref = "people/2"
                              } },
                            { "Father", new Attribute {
                                  Ref = "people/3"
                              } }
                        }
                    });

                    session.Store(
                        new Person
                    {
                        Id         = "people/2",
                        Name       = "Helen Doe",
                        Attributes = new Dictionary <string, string>()
                    });

                    session.Store(
                        new Person
                    {
                        Id         = "people/3",
                        Name       = "George Doe",
                        Attributes = new Dictionary <string, string>()
                    });
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region includes_11_1
                    var person = session
                                 .Include <PersonWithAttribute>(x => x.Attributes.Values.Select(v => v.Ref))
                                 .Load("people/1");

                    var mother = session
                                 .Load <Person>(person.Attributes["Mother"].Ref);

                    var father = session
                                 .Load <Person>(person.Attributes["Father"].Ref);

                    Assert.Equal(1, session.Advanced.NumberOfRequests);
                    #endregion
                }

                #region includes_11_2
                var result = store
                             .DatabaseCommands
                             .Get(new[] { "people/1" }, new[] { "Attributes.$Values,Ref" });

                var include1 = result.Includes[0];
                var include2 = result.Includes[1];
                #endregion
            }
        }
示例#18
0
        private void UpdateNextUnsentPaidOrder()
        {
            OrderDB db = new OrderDB();

            waitingPaidOrder = db.GetNextPaidOrder();
        }