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; } }
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; } }
// 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)); }
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); }); }
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 }); }
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); }
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); }); }
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); }
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; }
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()); }
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)); }
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);
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; } } }
// GET: Customer/Create public ActionResult Create() { CustomerOrders CO = new CustomerOrders(); return(View(CO)); }
public void GetAllCustomerTest() { var customerDS = new CustomerOrders(); var customersCount = customerDS.GetCustomersCount; customerDS.GetAllCustomers.Count().Should().Be(customersCount); }
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; }
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)); }
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); }