private async void FillCollections() { var orderDetails = await northwindRepository.GetOrderDetails(); var customers = await northwindRepository.GetCustomers(); var products = await northwindRepository.GetProducts(); var orders = await northwindRepository.GetOrders(); var categories = await northwindRepository.GetCategories(); var employees = await northwindRepository.GetEmployees(); customersList.AddRange(customers); productsList.AddRange(products); ordersList.AddRange(orders); orderDetailsList.AddRange(orderDetails); //Filling navigation propertie(Category) of Products await Task.Run(() => { products.ForEach(product => { product.Category = categories.First(category => category.CategoryID == product.CategoryID); }); }); //Filling naviagtion properties(Customer and Employee) of Order await Task.Run(() => { orders.ForEach(order => { order.Customer = customers.First(customer => customer.CustomerID == order.CustomerID); order.Employee = employees.First(employee => employee.EmployeeID == order.EmployeeID); }); }); //Filling naviagtion properties(Order and Product) of Order details await Task.Run(() => { orderDetails.ForEach(orderDetail => { orderDetail.Order = orders.First(order => order.OrderID == orderDetail.OrderID); orderDetail.Product = products.First(product => product.ProductID == orderDetail.ProductID); }); }); //Starting from this moment we track changes in source lists (i.e. customersList, productsList, ordersList, orderDetailsList) customersByCountries.Subscribe(); purchasesByCustomers.Subscribe(); salesByEmployees.Subscribe(); productsByCategories.Subscribe(); ordersByCountries.Subscribe(); salesByCountries.Subscribe(); salesByCategories.Subscribe(); }
public NorthwindQuery(INorthwindRepository repo) { Field <ListGraphType <CustomerType> >( name: "customers", description: "Customers that have made orders in the past at some point.", arguments: new QueryArguments(new QueryArgument <IdGraphType> { Name = "customerId" }), resolve: _ => repo.GetCustomers() ); }
public override async Task <CustomerResponse> GetAllCustomers(Empty request, ServerCallContext context) { var response = new CustomerResponse(); var customers = await _repo.GetCustomers(); response.Customers.AddRange(customers.Select(c => new CustomerMessage { CustomerId = c.CustomerId, CompanyName = c.CompanyName, ContactName = c.ContactName })); return(response); }
/// <summary> /// Return list of customers, page size, page number and an option to specify orders should be included /// </summary> /// <param name="pageSize">numer of items per page</param> /// <param name="pageNo">page number</param> /// <param name="includeOrders">flag to indicate customers orders should also be returned along with customer entity</param> /// <returns></returns> public IHttpActionResult GetCustomers([FromUri] int pageSize = 10, [FromUri] int pageNo = 1, [FromUri] bool includeOrders = false) { var entities = _repository.GetCustomers(); var totalCustomers = entities.Count(); var totalPages = Math.Ceiling((decimal)(totalCustomers / pageSize)); var skipCount = pageSize * (pageNo - 1); var canPage = skipCount < totalCustomers; String nextPageLink = null; String prevPageLink = null; IEnumerable <CustomerModel> customers = null; if (canPage) { var subset = from c in entities .OrderBy(c => c.CustomerID) .Skip(skipCount) .Take(pageSize) select c; customers = ModelFactory.GetCustomers(subset); if (pageNo > 1) { prevPageLink = GetLink(pageSize, pageNo - 1, includeOrders); } if ((totalCustomers - skipCount) > pageSize) { //not at the end of page var nextPageNo = pageNo + 1; nextPageLink = GetLink(pageSize, nextPageNo, includeOrders); } } return(Ok( new { TotalCustomers = totalCustomers, PageSize = pageSize, PageNo = pageNo, Results = customers, NextPageLink = nextPageLink, PreviousPageLink = prevPageLink })); }
public async Task <IEnumerable <OrderObject> > GetOrdersInfo(int orderId) { var order = (await northwindRepository.GetOrders()).First(a => a.OrderID == orderId); var customer = (await northwindRepository.GetCustomers()).First(a => a.CustomerID == order.CustomerID); var employee = (await northwindRepository.GetEmployees()).First(a => a.EmployeeID == order.EmployeeID); order.Customer = customer; order.Employee = employee; var orderObject = new ObservableCollection <OrderObject>(); orderObject.Add(new OrderObject() { OrderId = order.OrderID, OrderDate = order.OrderDate.Value, EmployeeName = order.Employee.FirstName + " " + order.Employee.LastName, CustomerName = order.Customer.CompanyName }); return(orderObject); }
public IActionResult GetCustomers() { return(Ok(_nortwindRepo.GetCustomers())); }
public async Task <List <Customer> > GetCustomers() { return(await _repo.GetCustomers()); }