Ejemplo n.º 1
0
        public DataTable GenerateWarehouse(OrdersList supplierOrderList, OrdersList customersOrderList)
        {
            DataTable WarehouseDataTable = new DataTable();

            WarehouseDataTable.Columns.Add(WarehouseCulumnsNames.Date.ToString());
            WarehouseDataTable.Columns.Add(WarehouseCulumnsNames.Order_Type.ToString());
            WarehouseDataTable.Columns.Add(WarehouseCulumnsNames.Order_ID.ToString());

            foreach (ProductClass Product in dataManager.MetaData.ProductsMetaData.ProductList)
            {
                WarehouseDataTable.Columns.Add(Product.ProductName + " " + WarehouseCulumnsNames.Amount.ToString());
                WarehouseDataTable.Columns.Add(Product.ProductName + " " + WarehouseCulumnsNames.Total.ToString());
            }
            WarehouseDataTable.Columns.Add(WarehouseCulumnsNames.Total_Capacity.ToString());
            WarehouseDataTable.Columns[WarehouseCulumnsNames.Date.ToString()].DataType = typeof(DateTime);

            WarehouseDataTable = WarehouseInitRow(WarehouseDataTable);

            WarehouseDataTable = WarehouseOrdersToTable(WarehouseDataTable, supplierOrderList);
            WarehouseDataTable = WarehouseOrdersToTable(WarehouseDataTable, customersOrderList);

            WarehouseDataTable = sortDataTable(WarehouseDataTable, WarehouseCulumnsNames.Date.ToString());
            WarehouseDataTable = WarehouseTotalAmount(WarehouseDataTable);
            WarehouseDataTable = WarehouseCalculateTotal(WarehouseDataTable);

            return(WarehouseDataTable);
        }
Ejemplo n.º 2
0
        public void CreateOrders()
        {
            if (OrdersList.Count != 0)
            {
                OrdersList.Clear();
            }

            for (var i = 0; i < OrderCount; i++)
            {
                var random = new Random();
                while (true)
                {
                    var order       = _ordersDataList.ElementAt(random.Next(0, _ordersDataList.Count));
                    var orderRepeat = OrdersList.FirstOrDefault(x => x.key == order.key);
                    if (OrdersList.Count == 0 || orderRepeat == null)
                    {
                        OrdersList.Add(order);
                    }
                    else
                    {
                        continue;
                    }

                    break;
                }
            }
        }
Ejemplo n.º 3
0
        public void TestAddMethod()
        {
            OrdersList ol = new OrdersList();

            ol.AddOrder(new Order());
            Assert.AreEqual(ol.orders.Count, 1);
        }
Ejemplo n.º 4
0
        public DataTable GenerateCustomerOrdersDataTable(OrdersList customerOrderList)
        {
            DataTable customerOrdersTable = new DataTable();

            foreach (CustomerOrderColumnsNames header in Enum.GetValues(typeof(CustomerOrderColumnsNames)))
            {
                customerOrdersTable.Columns.Add(header.ToString());
            }

            customerOrdersTable.Columns[CustomerOrderColumnsNames.Delivery_Date.ToString()].DataType = typeof(DateTime);

            foreach (Order order in customerOrderList.OrderList)
            {
                DataRow drow = customerOrdersTable.NewRow();
                drow[CustomerOrderColumnsNames.Customer_Name.ToString()]       = order.Person.Name;
                drow[CustomerOrderColumnsNames.Customer_ID.ToString()]         = order.Person.ID;
                drow[CustomerOrderColumnsNames.Order_ID.ToString()]            = order.OrderID;
                drow[CustomerOrderColumnsNames.Delivery_Date.ToString()]       = order.OrderDeliveryDate.ToShortDateString();
                drow[CustomerOrderColumnsNames.Total_Order_Price.ToString()]   = order.GetOrderAmount().ToString();
                drow[CustomerOrderColumnsNames.Possible_To_Deliver.ToString()] = Warehouse.CanGetProducts(order).ToString();
                customerOrdersTable.Rows.Add(drow);
            }
            customerOrdersTable = sortDataTable(customerOrdersTable, CustomerOrderColumnsNames.Delivery_Date.ToString());
            return(customerOrdersTable);
        }//end GenerateCustomerDataTable
Ejemplo n.º 5
0
        public static async Task <List <Order> > GetOrdersInProgAsync()
        {
            //TO DO remove the rendundancy of client

            client             = new HttpClient();
            client.BaseAddress = new Uri("https://api-dev.channelengine.net/api/v2/orders");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            //client.DefaultRequestHeaders.Add("apikey", "541b989ef78ccb1bad630ea5b85c6ebff9ca3322");

            HttpResponseMessage response = await client.GetAsync("?statuses=IN_PROGRESS&" + apikey);

            if (response.IsSuccessStatusCode)
            {
                String json = await response.Content.ReadAsStringAsync();

                if (json != null)
                {
                    //I'm doing this because I need to map Content in a different object
                    json = ReplaceFirst(json, "Content", "Order");
                    OrdersList orders = JsonConvert.DeserializeObject <OrdersList>(json);
                    if (orders != null && orders.Order != null)
                    {
                        return(orders.Order.ToList());
                    }
                }
            }
            return(null);
        }
Ejemplo n.º 6
0
        public DataTable GenerateBank(OrdersList purchaseOrders, OrdersList customersOrderList, double bankCurrentBalance)
        {
            DataTable BankDataTable = new DataTable();

            foreach (BankColumnNames header in Enum.GetValues(typeof(BankColumnNames)))
            {
                BankDataTable.Columns.Add(header.ToString());
            }

            BankDataTable.Columns[BankColumnNames.Date.ToString()].DataType = typeof(DateTime);

            BankDataTable = bankInitRow(BankDataTable, bankCurrentBalance);
            BankDataTable = BankOrdersToTable(BankDataTable, customersOrderList);
            BankDataTable = BankOrdersToTable(BankDataTable, purchaseOrders);

            BankDataTable = sortDataTable(BankDataTable, BankColumnNames.Date.ToString());

            for (int i = 1; i < BankDataTable.Rows.Count; i++)
            {
                BankDataTable.Rows[i].SetField(BankColumnNames.Total.ToString(),
                                               (Convert.ToInt32(BankDataTable.Rows[i - 1][BankColumnNames.Total.ToString()]) + Convert.ToInt32(BankDataTable.Rows[i][BankColumnNames.Amount.ToString()])));
            }


            return(BankDataTable);
        }
        private void Btn_ReadToXML_Click(object sender, RoutedEventArgs e)
        {
            StreamReader reader = null;

            try
            {
                string        path       = "Orders.xml";
                XmlSerializer serializer = new XmlSerializer(typeof(OrdersList), "Project.List");
                reader     = new StreamReader(path);
                ordersList = (OrdersList)serializer.Deserialize(reader);
                if (fooditemsgrid.ItemsSource != ordersList.Orders)
                {
                    fooditemsgrid.ItemsSource = ordersList.Orders;
                }
                MessageBox.Show("XML Readed!!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
Ejemplo n.º 8
0
        protected override void OnStartup(StartupEventArgs e)
        {
            Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;

            base.OnStartup(e);

            RegisterUnity();

            Container.RegisterInstance(ConfigurationManager.ConnectionStrings["ITCDB"].ConnectionString);

            Login lf     = Container.Resolve <Login>();
            bool  result = lf.ShowDialog() ?? false;

            if (result)
            {
                OrdersList ol = Container.Resolve <OrdersList>();
                Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
                Current.MainWindow   = ol;
                ol.Show();
            }
            else
            {
                Current.Shutdown();
            }
        }
        public IActionResult Index()
        {
            OrdersList model = new OrdersList
            {
                UnprocessedOrders = this.ordersService.GetAllOrders()
                                    .FindAll(o => o.OrderStatus == OrderStatus.Unprocessed)
                                    .Select(o => new UnprocessedOrder
                {
                    Id           = o.Id,
                    DeliveryType = o.DeliveryType,
                    OrderDate    = (DateTime)o.OrderDate,
                    OrderStatus  = o.OrderStatus,
                    PaymentType  = o.PaymentType
                }).ToList(),
                ProcessedOrders = this.ordersService.GetAllOrders()
                                  .FindAll(o => o.OrderStatus == OrderStatus.Procesed)
                                  .Select(o => new ProcessedOrder
                {
                    Id           = o.Id,
                    DeliveryType = o.DeliveryType,
                    ProcesedDate = (DateTime)o.ProcesedDate,
                    OrderStatus  = o.OrderStatus,
                    PaymentType  = o.PaymentType
                }).ToList()
            };

            return(View(model));
        }
Ejemplo n.º 10
0
        public static OrdersList GetOrdersList3(int id)
        {
            var ordersList = new OrdersList();

            try
            {
                // Build connection string
                var helper = new HelperClass();
                Console.Write("Connecting to SQL Server ... ");
                using (SqlConnection connection = new SqlConnection(helper.Builder.ConnectionString))
                {
                    connection.Open();
                    var orders = connection.Query <Order>("exec accounts.spGetOrders @WarehouseID", new { WarehouseID = id });
                    ordersList.Orders = (List <Order>)orders;
                }
            }
            catch (SqlException e)
            {
                ordersList.status = e.ToString();
            }



            ordersList.status = "Orders retrieved";
            return(ordersList);
        }
Ejemplo n.º 11
0
        private static void IteratorIEnumerableDemo()
        {
            var orders = new OrdersList(new Order[]
            {
                new Order
                {
                    Item = "Phone", OrderId = "1"
                },
                new Order
                {
                    Item = "Watch", OrderId = "2"
                },
                new Order
                {
                    Item = "TV", OrderId = "3"
                },
            });

            foreach (var order in orders)
            {
                Console.WriteLine(order.OrderId);
            }

            foreach (var order in orders)
            {
                Console.WriteLine(order.OrderId);
            }
        }
Ejemplo n.º 12
0
        private void button3_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("Niestety baza wyrzuca bład, z którym nie potrafimy sobie poradzić. i ta sekcja jest nie dostępna");
            this.Hide();
            OrdersList ol = new OrdersList();

            ol.Show();
        }
Ejemplo n.º 13
0
        public async Task <ActionResult> Order3Async(int warehouseID)
        {
            OrdersList ordersListRetrieved = await GetOrders.GetOrdersList(warehouseID);

            var output = ordersListRetrieved.Orders;

            return(View(output));
        }
Ejemplo n.º 14
0
        public ActionResult Orders2(int warehouseID)
        {
            OrdersList ordersListRetrieved = GetOrders.GetOrdersList3(warehouseID);

            var output = ordersListRetrieved.Orders;

            return(View("~/Views/Order/Orders.cshtml"));
        }
Ejemplo n.º 15
0
        public void TestFindMethod()
        {
            OrdersList ol = new OrdersList();
            Order      o  = new Order();

            ol.AddOrder(o);
            Assert.AreEqual(ol.Find(or => or == o), o);
        }
Ejemplo n.º 16
0
        public void TestDeleteMethod()
        {
            OrdersList ol = new OrdersList();
            Order      o  = new Order();

            ol.AddOrder(o);
            ol.DeleteOrder(o);
            Assert.AreEqual(ol.orders.Count, 0);
        }
Ejemplo n.º 17
0
        public static OrdersList Parse(XmlNodeList customerOrderNodeList, ProductClassList productsList)
        {
            OrdersList customerOrderList = new OrdersList();

            foreach (XmlNode customerOrderNode in customerOrderNodeList)//orders level
            {
                Order    order    = new Order(Order.OrderTypeEnum.CustomerOrder);
                Customer customer = new Customer();


                foreach (XmlNode customerOrderParameter in customerOrderNode)//order parts level
                {
                    XMLCustomerOrderFields XMLcustomerOrderField = (XMLCustomerOrderFields)Enum.Parse(typeof(XMLCustomerOrderFields), customerOrderParameter.Name, true);

                    switch (XMLcustomerOrderField)
                    {
                    case XMLCustomerOrderFields.CustomerName:
                        customer.Name = customerOrderParameter.InnerText;
                        break;

                    case XMLCustomerOrderFields.CustomerID:
                        customer.ID = customerOrderParameter.InnerText;
                        break;

                    case XMLCustomerOrderFields.CustomerOrderID:
                        order.OrderID = customerOrderParameter.InnerText;
                        break;

                    case XMLCustomerOrderFields.CustomerOrderDate:
                        order.OrderDate = DateTime.Parse(customerOrderParameter.InnerText);
                        break;

                    case XMLCustomerOrderFields.CustomerOrderDeliveryDate:
                        order.OrderDeliveryDate = DateTime.Parse(customerOrderParameter.InnerText);
                        break;

                    case XMLCustomerOrderFields.CustomerOrder_Status:
                        order.OrderStatus = (Order.OrderStatusEnum)Enum.Parse(typeof(Order.OrderStatusEnum), customerOrderParameter.InnerText, true);
                        break;

                    case XMLCustomerOrderFields.CustomerOrderProductsList:
                        order.OrderProductsList = getOrderProductsList(customerOrderParameter, productsList);
                        break;

                    default:
                        break;
                    } //end switch
                }     // end order parts level
                order.Person = customer;
                customerOrderList.AddOrder(order);
            }//end orders level



            return(customerOrderList);
        }
Ejemplo n.º 18
0
        private void LoadOrders(List <OrderLoadObject> orders)
        {
            foreach (var orderData in orders)
            {
                var order = _ordersDataList.First(x => x.key == orderData.key);
                order.isComplete = orderData.isComplete;

                OrdersList.Add(order);
            }
        }
Ejemplo n.º 19
0
        public void UpdateList()
        {
            List <Order> entList = OrdersController.GetInstance().GetOrders();

            entList.Sort((x, y) => x.Id.CompareTo(y.Id));
            collection = new ObservableCollection <Order>(entList);

            OrdersList.ItemsSource = collection;
            OrdersList.Items.Refresh();
            OrdersList.UpdateLayout();
        }
Ejemplo n.º 20
0
        private async void LoadOrders()
        {
            OrdersList.Clear();
            List <OrderModel> orders = null;
            await Task.Run(() =>
            {
                orders = serviceRepository.LoadOrders();
            });

            OrdersList.AddRange(orders);
        }
Ejemplo n.º 21
0
        static void Main(string[] args)
        {
            OrdersList list = new OrdersList();


            list.OpenFromFile();

            foreach (var v in list.orders)
            {
                Console.WriteLine("kek");
            }

            Console.ReadKey();
        }
Ejemplo n.º 22
0
 public MainWindow(OrdersList orders)
 {
     InitializeComponent();
     this.doneOrders        = 0;
     this.Salary.Content    = String.Format($"{0:C}");
     this.Orders            = orders;
     this.cookLabel.Content = String.Format("A cook:");
     this.acook.Content     = this.Orders.CookName;
     this.Orders.OpenFromFile();
     foreach (Order elem in this.Orders.orders)
     {
         sushiDataGrid.Items.Add(elem);
     }
 }
Ejemplo n.º 23
0
        static async Task <List <Order> > getOrdersList()
        {
            List <Order>        orders   = new List <Order>();
            HttpResponseMessage response = await client.GetAsync(
                $"orders?oauth_token={acctoken}");

            if (response.IsSuccessStatusCode)
            {
                OrdersList result = await response.Content.ReadAsAsync <OrdersList>();

                return(result.Result.ToList <Order>());
            }
            return(null);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Checks if new customer orders arrived
        /// </summary>
        private void NewCustomerOrders()
        {
            OrdersList newOrders = marketingManager.GetFutureCustomersOrder(CurrnetTime);

            if (newOrders.OrderList.Count > 0)
            {
                foreach (Order order in newOrders.OrderList)
                {
                    var args = new OrderEventArgs();
                    args.Order = order;
                    Event_NewCustomerOrderArrived(this, args);
                }
            }
            ProcessesScheduleParser();
        }
Ejemplo n.º 25
0
        private void SupplierOrderDeliver()
        {
            OrdersList newOrders = purchaseManager.GetPurchaseOrders(CurrnetTime);

            if (newOrders.OrderList.Count > 0)
            {
                foreach (Order order in newOrders.OrderList)
                {
                    var args = new OrderEventArgs();
                    args.Order = order;
                    Event_NewSupplierOrderDelivered(this, args);
                }
            }
            ProcessesScheduleParser();
        }
        public async Task ListOrders()
        {
            APIResponse response = await GetOrders.ExecuteStrategy(null);

            if (response.IsSuccess)
            {
                var jsonSerializerSettings = new JsonSerializerSettings();
                jsonSerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;
                Orders = JsonConvert.DeserializeObject <List <OrderModel> >(response.Response, jsonSerializerSettings);
                foreach (var o in Orders)
                {
                    OrdersList.Add(o);
                }
            }
        }
Ejemplo n.º 27
0
        private List <OrdersList> ReadOrdersTable(DataTable dataTable)
        {
            List <OrdersList> orders = new List <OrdersList>();

            foreach (DataRow dr in dataTable.Rows)
            {
                OrdersList order = new OrdersList
                {
                    tableID = new Table((int)dr["tableID"]),
                    orderID = (int)dr["orderID"]
                };
                orders.Add(order);
            }
            return(orders);
        }
Ejemplo n.º 28
0
        private async void OnOrderUpdated(int orderId)
        {
            List <ProductInventoryModel> updatedProducts = null;

            await Task.Run(() =>
            {
                updatedProducts = serviceRepository.GetOrderProducts(orderId)?.ToList();
            });

            var currentOrder = OrdersList.FirstOrDefault(x => x.Id == orderId);

            if (updatedProducts != null && currentOrder != null)
            {
                currentOrder.Products = new ObservableCollection <ProductInventoryModel>(updatedProducts);
            }
        }
Ejemplo n.º 29
0
        private async void CreateNewOrder()
        {
            OrderModel newOrder = null;

            await Task.Run(() =>
            {
                newOrder = serviceRepository.CreateNewOrder();
            });

            if (newOrder != null)
            {
                OrdersList.Add(newOrder);
                SelectedOrder = newOrder;
                EventAggregator.GetEvent <OrderCreated>().Publish();
            }
        }
Ejemplo n.º 30
0
        public static async Task <OrdersList> GetOrdersList(int id)
        {
            string url        = "";
            var    ordersList = new OrdersList();

            url = $"https://localhost:26797/api/order/{id}";
            using (HttpResponseMessage response = await ApiHelper.ApiClient.GetAsync(url))
            {
                if (response.IsSuccessStatusCode)
                {
                    ordersList = await response.Content.ReadAsAsync <OrdersList>();
                }
            }

            return(ordersList);
        }
Ejemplo n.º 31
0
        public static OrdersList GetOrdersByName(string ClientName, int statusFilter, OrderSortFields sort, DateTime lowDate, DateTime hiDate, int startIndex, int size, int AcctgOrderLineId)
        {
            using (var dc = new DCFactory<StoreDataContext>())
            {
                DataLoadOptions options = new DataLoadOptions();
                options.LoadWith<Order>(o => o.OrderLines);
                dc.DataContext.LoadOptions = options;
                dc.DataContext.Log = new DebugTextWriter();

                IEnumerable<Order> orders = new List<Order>();

                int TotalCount = 0;
                int ClientCount = 0;

                var Clients = dc.DataContext.Users.Where(x => x.Clientname.Contains(ClientName)).Select(x => x.AcctgID).AsEnumerable();

                try
                {
                   ClientCount = Clients.Count();
                }
                catch
                {

                }

                //применить сортировку
                string SortExpr = "";
                string StatusFilter = "";
                string OrderlineAcctgIdFilter = "";

                if (AcctgOrderLineId > 0)
                {
                    OrderlineAcctgIdFilter = "and (select count(*) from dbo.OrderLines c where c.OrderId = a.OrderId and c.AcctgOrderLineId = " + AcctgOrderLineId.ToString() + ") > 0";
                }

                switch (sort)
                {
                    //case OrderSortFields.OrderIdAsc: orders = orders.OrderBy(o => o.OrderID); break;
                    //case OrderSortFields.OrderIdDesc: orders = orders.OrderByDescending(o => o.OrderID); break;
                    //case OrderSortFields.OrderDateAsc: orders = orders.OrderBy( o => o.OrderDate ); break;
                    //case OrderSortFields.OrderDateDesc: orders = orders.OrderByDescending(o => o.OrderDate); break;
                    //case OrderSortFields.TotalAsc: orders = orders.OrderBy( o => o.Total ); break;
                    //case OrderSortFields.TotalDesc: orders = orders.OrderByDescending( o => o.Total); break;
                    //case OrderSortFields.Status: orders = orders.OrderBy(o => o.Status).ThenBy(o => o.OrderID); break;
                    //case OrderSortFields.StatusDesc: orders = orders.OrderByDescending( o => o.Status ).ThenBy( o => o.OrderID ); break;
                    case OrderSortFields.OrderIdAsc: SortExpr = "ORDER BY a.OrderID"; break;
                    case OrderSortFields.OrderIdDesc: SortExpr = "ORDER BY a.OrderID DESC"; break;
                    case OrderSortFields.Status: SortExpr = "ORDER BY Status"; break;
                }

                switch (statusFilter)
                {

                    case 0: StatusFilter = "AND a.Status > 0"; break; //Все
                    case 1: StatusFilter = "AND a.Status = 1"; break; //Новый
                    case 2: StatusFilter = "AND a.Status = 2"; break; //В работе
                    case 3: StatusFilter = "AND a.Status = 3"; break; //Архив
                    case 4: StatusFilter = "AND a.Status > 0 AND a.Status < 3"; break; //Активные
                }

                if (string.IsNullOrEmpty(ClientName))
                   {
                        orders = dc.DataContext.ExecuteQuery<Order>(@"SELECT  *
                                                    FROM    (SELECT    ROW_NUMBER() OVER ( " + SortExpr + @" ) AS RowNum, a.*, b.ClientName + ' ' + b.ContactPersonPhone as ClientName
                                                    FROM    dbo.Orders a, dbo.Users b, dbo.OrderLines c
                                                    WHERE   a.OrderId = C.OrderId and OrderDate >= {0} AND OrderDate <= {1} AND a.UserId = b.UserId AND c.InternalFranchName = {4} " + OrderlineAcctgIdFilter + " " + StatusFilter + @") AS RowConstrainedResult
                                                    WHERE   RowNum > {2}
                                                    AND RowNum <= {2} + {3}
                                                    ORDER BY RowNum", lowDate, hiDate, startIndex, size, SiteContext.Current.InternalFranchName);

                        TotalCount = dc.DataContext.ExecuteQuery<int>(@"SELECT  COUNT(*)
                                                                       FROM    dbo.Orders a, dbo.Users b, dbo.OrderLines c
                                                                       WHERE   a.OrderId = C.OrderId AND OrderDate >= {0} AND OrderDate <= {1} AND  a.UserId = b.UserId AND c.InternalFranchName = {2} " + OrderlineAcctgIdFilter + " " + StatusFilter,
                                                                       lowDate,
                                                                       hiDate,
                                                                       SiteContext.Current.InternalFranchName).FirstOrDefault();
                    }
                    else
                    //orders = dc.DataContext.Orders.Where(o => Clients.Contains(o.UserID)).ToArray().AsEnumerable();
                    {
                        if (ClientCount > 0)
                        {
                            orders = dc.DataContext.ExecuteQuery<Order>(@"SELECT  *
                                                    FROM    (SELECT    ROW_NUMBER() OVER ( " + SortExpr + @" ) AS RowNum, a.*, b.ClientName + ' ' + b.ContactPersonPhone as ClientName
                                                    FROM    dbo.Orders a, dbo.Users b, dbo.OrderLines c
                                                    WHERE    a.OrderId = C.OrderId and OrderDate >= {0} AND OrderDate <= {1} " + OrderlineAcctgIdFilter + " " + StatusFilter + @" AND  a.UserID = b.UserId AND c.InternalFranchName = {4} AND a.ClientId  in ('" + Clients.Select(x => x.ToString()).Aggregate((prev, next) => prev + "','" + next) +
                                                            @"')) AS RowConstrainedResult
                                                    WHERE   RowNum > {2} AND RowNum <=  {2} + {3}
                                                    ORDER BY RowNum", lowDate, hiDate, startIndex, size, AcctgRefCatalog.RmsFranches[SiteContext.Current.InternalFranchName].InternalFranchName);

                            try
                            {
                                TotalCount = dc.DataContext.ExecuteQuery<int>(@"SELECT  COUNT(*)
                                                                FROM dbo.Orders a, dbo.Users b,dbo.OrderLines c
                                                                WHERE a.OrderId = C.OrderId and OrderDate >= {0} " + OrderlineAcctgIdFilter + " " + StatusFilter + @" AND  a.UserId = b.UserId AND  OrderDate <= {1} AND CAST(a.ClientID as NVarChar(50)) in ('" + Clients.Select(x => x.ToString()).Aggregate((prev, next) => prev + "','" + next) + "')", lowDate, hiDate).FirstOrDefault();
                            }
                            catch
                            {

                            }
                        }
                    }
                    //применить фильтры
                    // orders = statusFilter == OrderStatusFilter.ActiveOrders ? orders.Where(o => o.Status != OrderStatus.Completed) : orders.Where(o => o.Status == OrderStatus.Completed);

                OrdersList res = new OrdersList();
                res.Orders = orders.ToArray();
                res.Orders.Each((x) => x.ClientName = dc.DataContext.Users.Where(y => y.AcctgID ==x.ClientID).FirstOrDefault().Clientname); //Нужно загрузить здесь, так как после диспоуза дтаконтекста юзер будет не доступен
                res.Orders.Each((x) => x.ClientSaldo = decimal.Round(LightBO.GetUserLightBalance(dc.DataContext.Users.Where(y => y.AcctgID == x.ClientID).FirstOrDefault().UserID, DateTime.Now)));
                res.Orders.Each((x) => x.ActiveOrdersSum = decimal.Round(LightBO.GetUserActiveOrdersSum(dc.DataContext.Users.Where(y => y.AcctgID == x.ClientID).FirstOrDefault().UserID)));
                res.Orders.Each((x) => x.PrepaymentPercent = dc.DataContext.ExecuteQuery<decimal>("select PrepaymentPercent from dbo.Users where UserId = {0}", dc.DataContext.Users.Where(y => y.AcctgID == x.ClientID).FirstOrDefault().UserID).FirstOrDefault());
                res.Orders.Each((x) => x.ActiveOrdersSumToDate = LightBO.GetUserActiveOrdersSumToDate /*GetUserLightDebt*/(dc.DataContext.Users.Where(y => y.AcctgID == x.ClientID).FirstOrDefault().UserID));
                res.Orders.Each((x) => x.ClientSaldoToDate = LightBO.GetUserLightBalanceWithDelay(dc.DataContext.Users.Where(y => y.AcctgID == x.ClientID).FirstOrDefault().UserID));
                res.Orders.Each((x) => x.PaymentLimit = LightBO.GetPaymentLimit(dc.DataContext.Users.Where(y => y.AcctgID == x.ClientID).FirstOrDefault().UserID));

                res.TotalCount = TotalCount;
                res.StartIndex = startIndex;
                return res;
            }
        }
Ejemplo n.º 32
0
        public static OrdersList GetOrders( string clientId, OrderStatusFilter statusFilter, OrderSortFields sort, int startIndex, int size )
        {
            using( var dc = new DCFactory<StoreDataContext>() )
            {
                DataLoadOptions options = new DataLoadOptions();
                options.LoadWith<Order>( o => o.OrderLines );
                dc.DataContext.LoadOptions = options;
                dc.DataContext.Log = new DebugTextWriter();
                var orders = dc.DataContext.Orders.Where( o => o.ClientID == clientId ).ToArray().AsQueryable();

                //применить фильтры
                orders = statusFilter == OrderStatusFilter.ActiveOrders ? orders.Where( o => o.Status != OrderStatus.Completed ) : orders.Where( o => o.Status == OrderStatus.Completed );

                //применить сортировку
                switch( sort )
                {
                    case OrderSortFields.OrderIdAsc: orders = orders.OrderBy( o => o.OrderID ); break;
                    case OrderSortFields.OrderIdDesc: orders = orders.OrderByDescending( o => o.OrderID ); break;
                    //case OrderSortFields.OrderDateAsc: orders = orders.OrderBy( o => o.OrderDate ); break;
                    //case OrderSortFields.OrderDateDesc: orders = orders.OrderByDescending( o => o.OrderDate ); break;
                    //case OrderSortFields.TotalAsc: orders = orders.OrderBy( o => o.Total ); break;
                    //case OrderSortFields.TotalDesc: orders = orders.OrderByDescending( o => o.Total ); break;
                    case OrderSortFields.Status: orders = orders.OrderBy( o => o.Status ).ThenBy( o => o.OrderID ); break;
                    //case OrderSortFields.StatusDesc: orders = orders.OrderByDescending( o => o.Status ).ThenBy( o => o.OrderID ); break;
                }

                OrdersList res = new OrdersList();
                res.TotalCount = orders.Count();
                res.Orders = orders.Skip( startIndex ).Take( size ).ToArray();
                res.StartIndex = startIndex;
                return res;
            }
        }
        private void CreateOrdersPage()
        {
            Guid parentPageID = new Guid(SampleConstants.ShopBasePageId);
            var hasCreatedPage = SampleUtilities.CreateLocalizedPage(new Guid(SampleConstants.ShopOrdersPageId), "Orders", parentPageID, false, false, "en");
            if (hasCreatedPage)
            {
                SampleUtilities.SetTemplateToLocalizedPage(new Guid(SampleConstants.ShopOrdersPageId), new Guid(SampleConstants.EducationTemplateId), "en");

                OrdersList ordersList = new OrdersList();
                ordersList.InvoicePageId = new Guid(SampleConstants.ShopInvoicePageId);
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.ShopOrdersPageId), ordersList, "content", "Orders list", "en");
            }
        }