public void Should_save_the_customer_order_entity_after_placing_the_order_on_it()
        {
            var orderDto = new OrderDto();
            var order    = new Order(new List <OrderLine>());

            var customerOrders = new CustomerOrders();

            customerOrderRepositoryMock.Setup(repository => repository.GetByCustomerId(customerId))
            .Returns(customerOrders);
            orderFactoryMock.Setup(factory => factory.CreateOrder(orderDto)).Returns(order);

            CreateSUT().PlaceOrder(orderDto, customerId);

            customerOrderRepositoryMock.Verify(repository => repository.Save(customerOrders));
        }
        public async Task FetchOrders()
        {
            try
            {
                OrderDetails.Clear();
                RequestedOrders.Clear();
                CancelOrders.Clear();
                CompleteOrders.Clear();
                ProductList.Clear();
                CustomerOrders orders = await this.orderDataService.GetOrderedItemsAsync();

                if (orders != null)
                {
                    foreach (var item in orders.Data.CustomerInvoiceData)
                    {
                        OrderDetails.Add(item);
                        if (!string.IsNullOrEmpty(item.OrderStatus))
                        {
                            if (item.OrderStatus.ToLower() == "inprogress")
                            {
                                RequestedOrders.Add(item);
                            }
                            else if (item.OrderStatus.ToLower() == "rejected")
                            {
                                CancelOrders.Add(item);
                            }
                            else if (item.OrderStatus.ToLower() == "delivered")
                            {
                                CompleteOrders.Add(item);
                            }
                        }
                    }

                    foreach (var item in orders.Data.InvocieLineItems)
                    {
                        ProductList.Add(item);
                    }
                }
            }
            catch (Exception e)
            {
                await App.Current.MainPage.DisplayAlert("msg", "Unable to load order list", "ok");
            }
            finally
            {
                IsBusy = false;
            }
        }
示例#3
0
        public ActionResult Create(CustomerOrders CO)
        {
            try
            {
                // TODO: Add insert logic here

                UserManager.Insert(CO.CU_UserId, CO.CU_FirstName, CO.CU_LastName, CO.User.PassCode);
                CustomerManager.Insert(CO.CU_FirstName, CO.CU_LastName, CO.Customer.Address, CO.Customer.City, CO.Customer.State, CO.Customer.ZIP, CO.Customer.Phone, CO.CU_UserId);

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#4
0
        // GET: Customers/Orders/5
        public ActionResult Orders(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CustomerOrders customerOrders = new CustomerOrders();

            customerOrders.Customer = db.Customers.Find(id);
            if (customerOrders.Customer == null)
            {
                return(HttpNotFound());
            }
            customerOrders.Orders = db.Orders.Where(o => o.CustomerId == id).ToList();
            return(View(customerOrders));
        }
示例#5
0
        public void CreateOrder_FindByCustomerId()
        {
            var customerId = Guid.NewGuid();
            var customerFullName = "Test Customer";
            var domain = DefaultOrder(customerId, customerFullName);
            domain.AddOrderLine("Test Product", 1, 10.95m);

            Repository(repository => repository.Add(domain));

            Repository(repository =>
            {
                var q = new CustomerOrders {CustomerId = customerId};
                var orders = repository.Search(q);
                Assert.AreEqual(1, orders.TotalFound);
            });
        }
示例#6
0
        public async Task Handle(OrderDeclined domainEvent)
        {
            var orderDate = DateTime.Now.ToString("yy-MM-dd");

            var customerOrders = await _projectionsStore.Get <CustomerOrders>(domainEvent.CustomerId);

            if (customerOrders != null)
            {
                customerOrders = new CustomerOrders(domainEvent.CustomerId);
            }

            customerOrders.DeclinedOrders.Add(new SimplifiedOrder
            {
                OrderDate   = orderDate,
                OrderId     = domainEvent.OrderId,
                OrderNumber = domainEvent.OrderNumber
            });
        }
示例#7
0
        public static OrderPaymentSummary FromCustomerOrders(CustomerOrders customerOrders)
        {
            if (customerOrders?.NewOrder == null)
            {
                return(new OrderPaymentSummary());
            }

            return(new OrderPaymentSummary
            {
                OrderId = customerOrders.NewOrder.Id,
                NewPoints = customerOrders.NewPoints.Points,
                TotalPoints = customerOrders.TotalPoints,
                CustomerName = customerOrders.CustomerName,
                OrderAmount = customerOrders.NewOrder.TotalAmount,
                Discount = customerOrders.NewOrder.Discount,
                PayAmount = customerOrders.NewOrder.PayAmount,
            });
        }
        public DbTransactionData(ProductionDomainContext productionDomainContext)
        {
            _productionDomainContext = productionDomainContext;

            // cache tables
            // TODO: This line should be removed
            _articles = _productionDomainContext.Articles.Include(m => m.ArticleBoms)
                        .ThenInclude(m => m.ArticleChild).Include(m => m.ArticleBoms)
                        .ThenInclude(x => x.Operation).ThenInclude(x => x.ResourceCapability)
                        .ThenInclude(s => s.ResourceCapabilityProvider).ThenInclude(r => r.ResourceSetups)
                        .ThenInclude(x => x.Resource)
                        .Include(x => x.ArticleToBusinessPartners).ThenInclude(x => x.BusinessPartner)
                        .ToList();

            _productionOrderBoms =
                new ProductionOrderBoms(_productionDomainContext.ProductionOrderBoms.ToList());

            _stockExchangeDemands =
                new StockExchangeDemands(_productionDomainContext.StockExchanges.ToList());
            _stockExchangeProviders =
                new StockExchangeProviders(_productionDomainContext.StockExchanges.ToList());

            _productionOrders =
                new ProductionOrders(_productionDomainContext.ProductionOrders.ToList());
            _purchaseOrderParts =
                new PurchaseOrderParts(_productionDomainContext.PurchaseOrderParts.ToList());

            _customerOrderParts =
                new CustomerOrderParts(_productionDomainContext.CustomerOrderParts.ToList());
            _customerOrders = new CustomerOrders(_productionDomainContext.CustomerOrders.ToList());

            // others
            _purchaseOrders.PushAll(_productionDomainContext.PurchaseOrders.ToList());
            _productionOrderOperations = new ProductionOrderOperations(
                _productionDomainContext.ProductionOrderOperations.ToList());

            // demandToProvider

            _demandToProviderTable =
                new LinkDemandAndProviderTable(_productionDomainContext.DemandToProviders);
            _providerToDemandTable =
                new LinkDemandAndProviderTable(_productionDomainContext.ProviderToDemand);
        }
示例#9
0
        public void CreateOrder_FindByCustomerId()
        {
            var customerId       = new CustomerId(Guid.NewGuid().ToString());
            var customerFullName = "Test Customer";
            var domain           = DefaultOrder(customerId, customerFullName);

            domain.AddOrderLine("Test Product", 1, 10.95m);

            Repository(repository => repository.Add(domain));

            Repository(repository =>
            {
                var q = new CustomerOrders {
                    CustomerId = customerId
                };
                var orders = repository.Search(q);
                Assert.AreEqual(1, orders.TotalFound);
            });
        }
示例#10
0
        private async Task StoreCustomerOrder(string orderDate, OrderAccepted domainEvent)
        {
            var customerOrders = await _projectionsStore.GetSingle <CustomerOrders>(x => x.CustomerId == domainEvent.CustomerId);

            if (customerOrders == null)
            {
                customerOrders = new CustomerOrders
                {
                    CustomerId = domainEvent.CustomerId
                };
            }

            customerOrders.AcceptedOrders.Add(new SimplifiedOrder
            {
                OrderId     = domainEvent.OrderId,
                OrderNumber = domainEvent.OrderNumber,
                OrderDate   = orderDate
            });

            await _projectionsStore.Replace(customerOrders);
        }
示例#11
0
        public ActionResult Checkout()
        {
            try
            {
                CustomerOrders co = new CustomerOrders();
                co.CustomerList = CustomerManager.Load();
                User currentUser = (User)Session["user"];

                GetShoppingCart();

                // We need to get the CustomerId from the user with a sql join
                cart.CustomerId = UserManager.GetCustomerId(currentUser.UserId);

                ShoppingCartManager.Checkout(cart, currentUser);
                Session["cart"] = null;
                return(RedirectToAction("ThankYou"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void Waiter_Load(object sender, EventArgs e)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["CustomerOrders"].ConnectionString);

            connection.Open();
            string                sql     = "SELECT * FROM CustomerOrders";
            SqlCommand            command = new SqlCommand(sql, connection);
            SqlDataReader         reader  = command.ExecuteReader();
            List <CustomerOrders> list    = new List <CustomerOrders>();

            while (reader.Read())
            {
                CustomerOrders CS = new CustomerOrders();

                CS.Id                   = (int)reader["Id"];
                CS.CustomerName         = reader["CustomerName"].ToString();
                CS.TableNo              = (int)reader["Id"];
                CS.AddOn                = reader["AddOn"].ToString();
                CS.Burger               = reader["Burger"].ToString();
                CS.RiceBowl             = reader["RiceBowl"].ToString();
                CS.Pizza                = reader["Pizza"].ToString();
                CS.Sawrma               = reader["Sawrma"].ToString();
                CS.Dumplings            = reader["Dumplings"].ToString();
                CS.Pastry               = reader["Pastry"].ToString();
                CS.Coke                 = reader["Coke"].ToString();
                CS.Water                = reader["Water"].ToString();
                CS.Price                = reader["Price"].ToString();
                CS.OrderTime            = reader["OrderTime"].ToString();
                CS.ChefOrderDone        = reader["ChefOrderDoneTime"].ToString();
                CS.CustomerRecievedTime = reader["CustomerRecieved"].ToString();

                CS.Payment = reader["Payment"].ToString();
                CS.Date    = reader["Date"].ToString();

                list.Add(CS);
            }
            dataGridView1.DataSource = list;
        }
示例#13
0
        public void CreateOrder(int userId, OrdersDto orderDetails)
        {
            try
            {
                StringBuilder orderid = new StringBuilder();
                orderid.Append(CreateRandomNumber(3));
                orderid.Append('-');
                orderid.Append(CreateRandomNumber(6));

                CustomerOrders customerOrder = new CustomerOrders
                {
                    OrderId     = orderid.ToString(),
                    UserId      = userId,
                    DateCreated = DateTime.Now.Date,
                    CartTotal   = orderDetails.CartTotal
                };
                _dbContext.CustomerOrders.Add(customerOrder);
                _dbContext.SaveChanges();

                foreach (CartItemDto order in orderDetails.OrderDetails)
                {
                    CustomerOrderDetails productDetails = new CustomerOrderDetails
                    {
                        OrderId   = orderid.ToString(),
                        ProductId = order.Product.ProductId,
                        Quantity  = order.Quantity,
                        Price     = order.Product.Price
                    };
                    _dbContext.CustomerOrderDetails.Add(productDetails);
                    _dbContext.SaveChanges();
                }
            }
            catch
            {
                throw;
            }
        }
        public virtual CustomerOrderEntity[] GetCustomerOrdersByIds(string[] ids, CustomerOrderResponseGroup responseGroup)
        {
            var query = CustomerOrders.Where(x => ids.Contains(x.Id))
                        .Include(x => x.Discounts)
                        .Include(x => x.TaxDetails);

            if ((responseGroup & CustomerOrderResponseGroup.WithAddresses) == CustomerOrderResponseGroup.WithAddresses)
            {
                var addresses = Addresses.Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithInPayments) == CustomerOrderResponseGroup.WithInPayments)
            {
                var inPayments = InPayments.Include(x => x.TaxDetails)
                                 .Include(x => x.Discounts)
                                 .Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
                var paymentsIds      = inPayments.Select(x => x.Id).ToArray();
                var paymentAddresses = Addresses.Where(x => paymentsIds.Contains(x.PaymentInId)).ToArray();
                var transactions     = Transactions.Where(x => paymentsIds.Contains(x.PaymentInId)).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithItems) == CustomerOrderResponseGroup.WithItems)
            {
                var lineItems = LineItems.Include(x => x.TaxDetails)
                                .Include(x => x.Discounts)
                                .Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithShipments) == CustomerOrderResponseGroup.WithShipments)
            {
                var shipments = Shipments.Include(x => x.TaxDetails)
                                .Include(x => x.Discounts)
                                .Include(x => x.Items)
                                .Include(x => x.Packages.Select(y => y.Items))
                                .Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
                var shipmentIds = shipments.Select(x => x.Id).ToArray();
                var addresses   = Addresses.Where(x => shipmentIds.Contains(x.ShipmentId)).ToArray();
            }
            return(query.ToArray());
        }
示例#15
0
        public async Task <CustomerOrders> GetOrderedItemsAsync()
        {
            //var UserCarts = new List<UserCart>();
            try
            {
                var    app        = App.Current as App;
                var    dt         = DateTime.Now;
                string dateFormat = dt.Year + "-" + dt.Month + "-" + dt.Day + " " + dt.Hour + ":" + dt.Minute + ":" + dt.Second;
                Dictionary <string, object> payload = new Dictionary <string, object>();
                payload.Add("access_key", app.SecurityAccessKey);
                payload.Add("merchant_id", app.Merchantid);
                payload.Add("phone_number", app.UserPhoneNumber);
                payload.Add("start_date", "2020-06-08 09:38:30");
                payload.Add("page_size", "10");
                payload.Add("page_number", "1");
                payload.Add("end_date", dateFormat);
                CustomerOrders robject = await this.Post <CustomerOrders>(this.getOrderUrl("GetOrder"), payload, null);

                //var robject = await this.Post<CustomerOrders>(this.getOrderUrl("GetOrder"), payload, null);
                //robject.Status = "Failure";
                if (robject.Status.ToUpper() == "SUCCESS")
                {
                    return(robject);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@"err" + ex.Message);
                return(null);
            }

            // return UserCarts;
        }
 public T_CustomerOrder OrderById(int id)
 {
     return(CustomerOrders.FirstOrDefault(predicate: x => x.Id == id));
 }
示例#17
0
 public IQueryable <T_CustomerOrder> ById(int id) => CustomerOrders.Include(navigationPropertyPath: x => x.CustomerOrderParts)
 .Include(navigationPropertyPath: x => x.BusinessPartner)
 .Where(predicate: x => x.BusinessPartner.Debitor)
 .Where(predicate: x => x.Id == id);
示例#18
0
 public void CustomerOrdersConstructorTest()
 {
     CustomerOrders target = new CustomerOrders();
 }
        private void button2_Click(object sender, EventArgs e)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["CustomerOrders"].ConnectionString);

            connection.Open();
            string        sql     = "SELECT * FROM CustomerOrders WHERE Id=" + Id;
            SqlCommand    command = new SqlCommand(sql, connection);
            SqlDataReader reader  = command.ExecuteReader();

            while (reader.Read())
            {
                check = reader["ChefOrderDoneTime"].ToString();
            }
            connection.Close();
            if (check == "")
            {
                MessageBox.Show("Waiter is still making food wait...");
            }
            else
            {
                DateTime      time        = DateTime.Now;
                string        ab          = time.ToString("h:mm tt ");
                string        ba          = "Served by " + abd;
                SqlConnection connections = new SqlConnection(ConfigurationManager.ConnectionStrings["CustomerOrders"].ConnectionString);
                connections.Open();
                string sqls = "UPDATE CustomerOrders SET CustomerRecieved='" + ab + ba + "'WHERE Id=" + Id;


                SqlCommand commands = new SqlCommand(sqls, connections);


                int diary = commands.ExecuteNonQuery();


                if (diary > 0)
                {
                    MessageBox.Show("Order is Succefully Done");
                    string                sq2       = "SELECT * FROM CustomerOrders";
                    SqlCommand            commandss = new SqlCommand(sq2, connections);
                    SqlDataReader         readers   = commandss.ExecuteReader();
                    List <CustomerOrders> list      = new List <CustomerOrders>();
                    while (readers.Read())
                    {
                        CustomerOrders CS = new CustomerOrders();

                        CS.Id                   = (int)readers["Id"];
                        CS.CustomerName         = readers["CustomerName"].ToString();
                        CS.TableNo              = (int)readers["Id"];
                        CS.AddOn                = readers["AddOn"].ToString();
                        CS.Burger               = readers["Burger"].ToString();
                        CS.RiceBowl             = readers["RiceBowl"].ToString();
                        CS.Pizza                = readers["Pizza"].ToString();
                        CS.Sawrma               = readers["Sawrma"].ToString();
                        CS.Dumplings            = readers["Dumplings"].ToString();
                        CS.Pastry               = readers["Pastry"].ToString();
                        CS.Coke                 = readers["Coke"].ToString();
                        CS.Water                = readers["Water"].ToString();
                        CS.Price                = readers["Price"].ToString();
                        CS.OrderTime            = readers["OrderTime"].ToString();
                        CS.ChefOrderDone        = readers["ChefOrderDoneTime"].ToString();
                        CS.CustomerRecievedTime = readers["CustomerRecieved"].ToString();
                        CS.Payment              = readers["Payment"].ToString();
                        CS.Date                 = readers["Date"].ToString();


                        list.Add(CS);
                    }
                    dataGridView1.DataSource = list;
                }
            }
        }
示例#20
0
        // GET: Customer/Create
        public ActionResult Create()
        {
            CustomerOrders CO = new CustomerOrders();

            return(View(CO));
        }
示例#21
0
 public void GetAllCustomerTest()
 {
     var customerDS = new CustomerOrders();
     var customersCount = customerDS.GetCustomersCount;
     customerDS.GetAllCustomers.Count().Should().Be(customersCount);
 }
示例#22
0
        static void LINQToEntities()
        {
            using (NWContext db = new NWContext())
            {
                // Filtro
                var q1 = from c in db.Customers
                         where c.Country == "Mexico"
                         select c;

                var q1x = db.Customers.
                          Where(c => c.Country == "Mexico");

                //var result = q1.Count();
                //var any = result.Any();

                foreach (var item in q1x)
                {
                    Console.WriteLine($"{item.CustomerId} {item.CompanyName} {item.ContactName} {item.Country}");
                }
            }

            // Proyecciones
            using (NWContext db = new NWContext())
            {
                var q2 = from c in db.Customers
                         select c.Country;
                var q2x = db.Customers.Select(c => c.Country);

                var q2y = from c in db.Customers
                          select new { c.CustomerId, c.ContactName };

                var q2z = db.Customers.Select(c =>
                                              new { Id = c.CustomerId, c.ContactName });

                var q2w = db.Customers.Select(c =>
                                              new Categories()
                {
                    CategoryName = c.ContactName
                });

                Console.Clear();
                foreach (var item in q2z)
                {
                    Console.WriteLine($"{item.Id}, {item.ContactName}");
                }
            }

            // SelectMany
            using (NWContext db = new NWContext())
            {
                var q4 = db.Customers.
                         Where(c => c.Country == "Mexico").
                         SelectMany(c => c.Orders);

                var q4x = db.Orders.
                          Where(o => o.Customer.Country == "Mexico");

                Console.Clear();
                foreach (var item in q4)
                {
                    Console.WriteLine($"{item.CustomerId}, {item.OrderId}");
                }
            }

            // Ordenamiento
            using (NWContext db = new NWContext())
            {
                var q5 = from c in db.Customers
                         where c.Orders.Count > 5
                         orderby c.Country descending
                         select c;

                var q5x = db.Customers.
                          Where(c => c.Orders.Count > 5).
                          OrderByDescending(c => c.Country);

                Console.Clear();
                foreach (var item in q5)
                {
                    Console.WriteLine($"{item.CompanyName}, {item.Country}");
                }

                var q6 = from c in db.Customers
                         orderby c.CompanyName, c.ContactTitle,
                    c.ContactName
                select c;

                var q6x = db.Customers.OrderBy(c =>
                                               new
                {
                    c.CompanyName,
                    c.ContactTitle
                }).
                          ThenBy(c => c.ContactName);

                Console.Clear();
                foreach (var item in q6)
                {
                    Console.WriteLine($"{item.CompanyName}, {item.Country}");
                }
            }

            // Agrupamiento
            using (NWContext db = new NWContext())
            {
                var q7 = from c in db.Customers
                         group c by c.Country into CustByCountry
                         select CustByCountry;

                var q7x = db.Customers.GroupBy(c => c.Country);

                Console.Clear();
                foreach (var item in q7)
                {
                    Console.WriteLine($"{item.Key}, {item.Count()}");

                    foreach (var c in item)
                    {
                        Console.WriteLine($"\t{c.ContactName}");
                    }
                }

                var q7y = from c in db.Customers
                          group c by new { c.Country, c.City } into CountryCity
                where CountryCity.Count() > 1
                select new
                {
                    Country = CountryCity.Key.Country,
                    City    = CountryCity.Key.City,
                    Count   = CountryCity.Count(),
                    Items   = CountryCity
                };

                var q7y2 = db.Customers.GroupBy(c => new { c.Country, c.City }).
                           Where(g => g.Count() > 1).
                           Select(g => new
                {
                    Country = g.Key.Country,
                    City    = g.Key.City,
                    Count   = g.Count(),
                    Items   = g
                });

                Console.Clear();
                foreach (var item in q7y)
                {
                    Console.WriteLine($"{item.Country}, {item.City}, {item.Count}");

                    foreach (var c in item.Items)
                    {
                        Console.WriteLine($"\t{c.ContactName}");
                    }
                }
            }

            // Join
            using (NWContext db = new NWContext())
            {
                var q8 = from c in db.Customers
                         join o in db.Orders on c.CustomerId
                         equals o.CustomerId
                         select new { c, o };

                //                new { c.CustomerID, c.Country }
                //equals new { o.CustomerID, Country =  o.ShipCountry }

                var q8x = db.Customers.Join(
                    db.Orders, c => c.CustomerId,
                    o => o.CustomerId,
                    (c, o) => new { c, o });

                Console.Clear();
                foreach (var item in q8)
                {
                    Console.WriteLine($"{item.c.CustomerId}, {item.o.OrderId}");
                }

                // Join agrupado
                var q8y = from c in db.Customers
                          join o in db.Orders on c.CustomerId
                          equals o.CustomerId into CustomerOrders
                          select new { c, Orders = CustomerOrders };
                //select CustomerOrders;

                foreach (var ordenes in q8y)
                {
                    //foreach (var orden in ordenes)
                    //{

                    //}
                }

                // Left Ourter Join
                var q8z = from c in db.Customers
                          join o in db.Orders on c.CustomerId
                          equals o.CustomerId into CustomerOrders
                          from detalle in CustomerOrders.DefaultIfEmpty()
                          select new
                {
                    Customer = c,
                    Order    = detalle
                };

                foreach (var item in q8z)
                {
                    if (item.Order == null)
                    {
                        Console.WriteLine($"Customer {item.Customer.CustomerId} with NO orders!");
                    }
                }
            }

            // Conjuntos
            using (NWContext db = new NWContext())
            {
                var q9 = db.Customers.
                         Select(c => c.Country).Distinct();

                var q10 = db.Customers.Except(
                    db.Customers.Where(
                        c => c.Country == "Mexico")).
                          Select(c => c.Country).Distinct();

                Console.Clear();
                foreach (var item in q10)
                {
                    Console.WriteLine($"{item}");
                }
            }

            // Partición (paginación)
            using (NWContext db = new NWContext())
            {
                var q11 = db.Customers.
                          OrderBy(c => c.CustomerId).
                          Skip(10);
                // Tomar los primero 10 elementos
                var q12 = db.Customers.
                          OrderBy(c => c.CustomerId).
                          Take(10);
                // Segunda página de 10 elementos
                var q13 = db.Customers.
                          OrderBy(c => c.CustomerId).
                          Skip(10).Take(10);

                Console.Clear();
                foreach (var item in q13)
                {
                    Console.WriteLine($"{item.CustomerId}, {item.CompanyName}");
                }
            }

            // Modificación de consulta
            using (NWContext db = new NWContext())
            {
                var q14 = db.Customers.
                          Where(c => c.Orders.Count > 5);

                Console.Clear();
                Console.WriteLine(q14.Count());

                q14 = q14.Where(c => c.Country == "Mexico");
                Console.WriteLine(q14.Count());

                q14 = q14.OrderByDescending(c => c.ContactName);

                foreach (var item in q14)
                {
                    Console.WriteLine(item.ContactName);
                }
            }

            // Métodos útiles
            using (NWContext db = new NWContext())
            {
                var o1 = db.Customers.First();
                o1 = db.Customers.FirstOrDefault();
                o1 = db.Customers.Where(c => c.CustomerId == "ALFKI")
                     .Single();
                o1 = db.Customers.Where(c => c.CustomerId == "ALFKI").
                     SingleOrDefault();

                var o2 = db.Customers.All(c => c.Orders.Count > 5 &&
                                          c.Country == "Mexico");
                o2 = db.Customers.
                     Any(c => c.Orders.Count > 5);

                var sum = db.OrderDetails.
                          Sum(od => od.Quantity * od.UnitPrice);
            }
        }
 public StandardRebatePolicy(CustomerOrders customerOrders, int minimumQuantity, double rebate)
 {
     _rebate          = rebate / 100;
     _minimumQuantity = minimumQuantity;
     _customerOrders  = customerOrders;
 }
示例#24
0
        public async Task FetchOrders()
        {
            if (CrossConnectivity.Current.IsConnected)
            {
                try
                {
                    OrderDetails.Clear();
                    RequestedOrders.Clear();
                    CancelOrders.Clear();
                    CompleteOrders.Clear();
                    ProductList.Clear();
                    CustomerOrders orders = await this.orderDataService.GetOrderedItemsAsync();

                    if (orders != null)
                    {
                        foreach (var item in orders.Data.CustomerInvoiceData)
                        {
                            OrderDetails.Add(item);
                            if (!string.IsNullOrEmpty(item.OrderStatus))
                            {
                                if (item.OrderStatus.ToLower().Replace(" ", "") == "ontheway" || item.OrderStatus.ToLower().Replace(" ", "") == "packed" ||
                                    item.OrderStatus.ToLower().Replace(" ", "") == "inprogress" || item.OrderStatus.ToLower().Replace(" ", "") == "accepted")
                                {
                                    RequestedOrders.Add(item);
                                }
                                else if (item.OrderStatus.ToLower() == "cancelled" || item.OrderStatus.ToLower() == "rejected")
                                {
                                    CancelOrders.Add(item);
                                }
                                else if (item.OrderStatus.ToLower() == "delivered")
                                {
                                    CompleteOrders.Add(item);
                                }
                            }
                        }

                        foreach (var item in orders.Data.InvocieLineItems)
                        {
                            ProductList.Add(item);
                        }
                    }
                }
                catch (Exception e)
                {
                    try
                    {
                        DependencyService.Get <IToastMessage>().LongTime("Unable to load order list");
                    }
                    catch { }
                }
                finally
                {
                    IsBusy = false;
                }
            }
            else
            {
                try
                {
                    DependencyService.Get <IToastMessage>().LongTime("Check your Internet Connection to reload the list");
                }
                catch { }
                IsBusy = false;
            }
        }
        public IHttpActionResult GetOrder(int orderid)
        {
            var response = CustomerOrders.GetOrder(orderid);

            return(Ok(response));
        }
示例#26
0
        static void LINQToEntities()
        {
            using (NorthwindContext db = new NorthwindContext())
            {
                // Filtro
                var q1 = from c in db.Customers
                         where c.Country == "Mexico"
                         select c;

                var q1x = db.Customers.
                          Where(c => c.Country == "Mexico");

                //var result = q1.Count();
                //var any = result.Any();

                foreach (var item in q1x)
                {
                    Console.WriteLine($"{item.CustomerID} {item.CompanyName} {item.ContactName} {item.Country}");
                }
            }

            // * Proyecciones
            using (NorthwindContext db = new NorthwindContext())
            {
                var q2 = from c in db.Customers
                         select c.Country;

                var q2x = db.Customers.Select(c => c.Country);

                // Usando tipos anónimos
                var q2y = from c in db.Customers
                          select new { c.CustomerID, c.ContactName };

                var q2z = db.Customers.Select(c =>
                                              new { Id = c.CustomerID, c.ContactName });

                var q2a = from c in db.Customers
                          select new Category()
                {
                    CategoryName = c.ContactName
                };

                var q2w = db.Customers.Select(c =>
                                              new Category()
                {
                    CategoryName = c.ContactName
                });

                Console.Clear();
                foreach (var item in q2z)
                {
                    Console.WriteLine($"{item.Id}, {item.ContactName}");
                }
            }

            // SelectMany
            using (NorthwindContext db = new NorthwindContext())
            {
                var q4 = db.Customers.
                         Where(c => c.Country == "Mexico").
                         SelectMany(c => c.Orders);

                // Esto aplica si solo se usar .Select
                //foreach (var c in q4)
                //{
                //    foreach (var o in c)
                //    {

                //    }
                //}

                var q4x = db.Orders.
                          Where(o => o.Customer.Country == "Mexico");

                Console.Clear();
                foreach (var item in q4x)
                {
                    Console.WriteLine($"{item.CustomerID}, {item.OrderID}");
                }
            }

            // * Ordenamiento
            using (NorthwindContext db = new NorthwindContext())
            {
                var q5 = from c in db.Customers
                         where c.Orders.Count > 5
                         orderby c.Country descending
                         select c;

                var q5x = db.Customers.
                          Where(c => c.Orders.Count > 5).
                          OrderByDescending(c => c.Country);

                Console.Clear();
                foreach (var item in q5)
                {
                    Console.WriteLine($"{item.CompanyName}, {item.Country}");
                }

                var q6 = from c in db.Customers
                         orderby c.CompanyName, c.ContactTitle,
                    c.ContactName
                select c;

                var q6x = db.Customers.OrderBy(c =>
                                               new
                {
                    c.CompanyName,
                    c.ContactTitle
                }).
                          ThenBy(c => c.ContactName);

                Console.Clear();
                foreach (var item in q6)
                {
                    Console.WriteLine($"{item.CompanyName}, {item.Country}");
                }
            }

            // Agrupamiento
            using (NorthwindContext db = new NorthwindContext())
            {
                var q7 = from c in db.Customers
                         group c by c.Country into CustByCountry
                         select CustByCountry;

                var q7x = db.Customers.GroupBy(c => c.Country);

                Console.Clear();
                foreach (var grupo in q7)
                {
                    Console.WriteLine($"{grupo.Key}, {grupo.Count()}");

                    foreach (var c in grupo)
                    {
                        Console.WriteLine($"\t{c.ContactName}");
                    }
                }

                var q7y = from c in db.Customers
                          group c by new { c.Country, c.City } into CountryCity
                where CountryCity.Count() > 1
                select new
                {
                    Country = CountryCity.Key.Country,
                    City    = CountryCity.Key.City,
                    Count   = CountryCity.Count(),
                    Items   = CountryCity
                };

                var q7y2 = db.Customers.GroupBy(c => new { c.Country, c.City }).
                           Where(g => g.Count() > 1).
                           Select(g => new
                {
                    Country = g.Key.Country,
                    City    = g.Key.City,
                    Count   = g.Count(),
                    Items   = g
                });

                Console.Clear();
                foreach (var item in q7y)
                {
                    Console.WriteLine($"{item.Country}, {item.City}, {item.Count}");

                    foreach (var c in item.Items)
                    {
                        Console.WriteLine($"\t{c.ContactName}");
                    }
                }
            }

            // Join
            using (NorthwindContext db = new NorthwindContext())
            {
                var q8 = from c in db.Customers
                         join o in db.Orders on c.CustomerID
                         equals o.CustomerID
                         select new { c, o };

                //                new { c.CustomerID, c.Country }
                //equals new { o.CustomerID, Country =  o.ShipCountry }

                var q8x = db.Customers.Join(
                    db.Orders, c => c.CustomerID,
                    o => o.CustomerID,
                    (c, o) => new { c, o });

                Console.Clear();
                foreach (var item in q8)
                {
                    Console.WriteLine($"{item.c.CustomerID}, {item.o.OrderID}");
                }

                // Join agrupado
                var q8y = from c in db.Customers
                          join o in db.Orders on c.CustomerID
                          equals o.CustomerID into CustomerOrders
                          select new { c, Orders = CustomerOrders };
                //select CustomerOrders;

                foreach (var ordenes in q8y)
                {
                    //foreach (var orden in ordenes)
                    //{

                    //}
                }

                // Left Ourter Join
                var q8z = from c in db.Customers
                          join o in db.Orders on c.CustomerID
                          equals o.CustomerID into CustomerOrders
                          from detalle in CustomerOrders.DefaultIfEmpty()
                          select new
                {
                    Customer = c,
                    Order    = detalle
                };

                foreach (var item in q8z)
                {
                    if (item.Order == null)
                    {
                        Console.WriteLine($"Customer {item.Customer.CustomerID} with NO orders!");
                    }
                }
            }

            // Conjuntos
            using (NorthwindContext db = new NorthwindContext())
            {
                var q9 = db.Customers.
                         Select(c => c.Country).Distinct();

                var q10 = db.Customers.Except(
                    db.Customers.Where(
                        c => c.Country == "Mexico")).
                          Select(c => c.Country).Distinct();

                var q11 = db.Customers.Where(c => c.Country == "Germany").Union(db.Customers.Where(c => c.Country == "Italy"));

                Console.Clear();
                foreach (var item in q11)
                {
                    Console.WriteLine($"{item.ContactName} {item.Country}");
                }
            }

            // * Partición (paginación)
            using (NorthwindContext db = new NorthwindContext())
            {
                var q11 = db.Customers.
                          OrderBy(c => c.CustomerID).
                          Skip(10);
                // Tomar los primero 10 elementos
                var q12 = db.Customers.
                          OrderBy(c => c.CustomerID).
                          Take(10);

                // Segunda página de 5 elementos
                var q13 = db.Customers.
                          OrderBy(c => c.CustomerID).
                          Skip(5).Take(5);

                // SELECT*
                // FROM[dbo].[Products] AS[Extent1]
                // ORDER BY row_number() OVER(ORDER BY[Extent1].[ProductID] ASC)
                // OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY

                var q14 = db.Customers.
                          OrderBy(c => c.CustomerID).
                          TakeWhile(c => c.Country == "Mexico");

                Console.Clear();
                foreach (var item in q13)
                {
                    Console.WriteLine($"{item.CustomerID}, {item.CompanyName}");
                }
            }

            // * Modificación de consulta
            using (NorthwindContext db = new NorthwindContext())
            {
                var q14 = db.Customers.
                          Where(c => c.Orders.Count > 5);

                Console.Clear();
                Console.WriteLine(q14.Count());

                q14 = q14.Where(c => c.Country == "Mexico");
                Console.WriteLine(q14.Count());

                q14 = q14.OrderByDescending(c => c.ContactName);

                foreach (var item in q14)
                {
                    Console.WriteLine(item.ContactName);
                }
            }

            // * Métodos útiles
            using (NorthwindContext db = new NorthwindContext())
            {
                var o1 = db.Customers.First();
                o1 = db.Customers.FirstOrDefault();
                o1 = db.Customers.Where(c => c.CustomerID == "ALFKI")
                     .Single();
                o1 = db.Customers.Where(c => c.CustomerID == "ALFKI").
                     SingleOrDefault();

                o1 = db.Customers.SingleOrDefault(c => c.CustomerID == "ALFKI");

                var o2 = db.Customers.All(c => c.Orders.Count > 5 &&
                                          c.Country == "Mexico");
                o2 = db.Customers.
                     Any(c => c.Orders.Count > 5);

                var sum = db.OrderDetails.
                          Sum(od => od.Quantity * od.UnitPrice);

                var avg = db.OrderDetails.
                          Average(od => od.Quantity * od.UnitPrice);
            }
        }
 public void Save(CustomerOrders customerOrders)
 {
     appDbContext.Set <Order>().Add(customerOrders.NewOrder);
     appDbContext.Set <CustomerPoints>().Add(customerOrders.NewPoints);
 }