コード例 #1
0
        public void GetStocksTest()
        {
            MockDataManager mDm = new MockDataManager();

            mDm.ExchangesConfigured.Add("ABC");
            mDm.ExchangesConfigured.Add("DEF");
            mDm.Stocks.Add(new StockData()
            {
                CompanyNameShort = "TCS", Exchange = "NSE", value = 200, hi52 = 300, lo52 = 100, percentChanged = 1
            });
            mDm.Stocks.Add(new StockData()
            {
                CompanyNameShort = "ONGC", Exchange = "NSE", value = 210, hi52 = 310, lo52 = 110, percentChanged = 2
            });
            mDm.Stocks.Add(new StockData()
            {
                CompanyNameShort = "KSCL", Exchange = "NSE", value = 220, hi52 = 320, lo52 = 120, percentChanged = 3
            });
            ViewModelMediator.GetMediator().dataManager = mDm;
            mDm.stockDataBL = new MockStockDataBusinessLogic();
            mDm.ExchangesConfigured.Add("NSE");

            StockListViewModel listVm = new StockListViewModel();

            listVm.SelectedExchange = "NSE";
            Thread.Sleep(10000);
            Assert.IsTrue(listVm.StockDetailsList.Count == 3);
        }
コード例 #2
0
        /// <summary>
        /// Start to load data
        /// </summary>
        public async Task LoadData()
        {
            StringBuilder str = new StringBuilder();

            try
            {
                var allFavorite = _favoriteStockService.GetAll();

                if (allFavorite.Count > 0)
                {
                    allFavorite = allFavorite.OrderBy(x => x.Order).ToList();

                    List <RealTimeStockItem> realTimeStockList = await _queryService.GetMultipleRealTimeStockAsync(allFavorite);

                    StockListViewModel.AddStock(realTimeStockList);
                }
            }
            catch (Exception e)
            {
                str.AppendLine(e.Message);
            }

            if (str.Length != 0)
            {
                Dialog.ShowError(str.ToString());
            }
        }
コード例 #3
0
        public async Task RefreshItemSource(string param = "")
        {
            StockListViewModel svm = BindingContext as StockListViewModel;


            StockServices services = new StockServices();

            //svm.RefreshCommand.Execute(null);

            //svm.RefreshListView(param);
            //if ((svm != null) && (svm.RefreshCommand.CanExecute(param)))
            //{
            //    svm.RefreshCommand.Execute(param);
            //}

            ObservableCollection <Stock> stocks = new ObservableCollection <Stock>();


            var s = lstView.ItemsSource;


            //lstView.ItemsSource =
            //    stocks.OrderByDescending(s => s.PercentChange);
            //lstView.RefreshCommand.Execute(param);


            //     txtSort.Text = param;
        }
コード例 #4
0
        public async Task <StockListViewModel> Put(StockListViewModel vm)
        {
            if (vm == null)
            {
                return(null);
            }
            var stocks = new List <Stock>();

            foreach (var stock in vm.Stocks)
            {
                var isValueQty = int.TryParse(stock.Qty, out var qty);
                if (!isValueQty)
                {
                    return(null);
                }
                stocks.Add(new Stock
                {
                    Id          = stock.Id,
                    Description = stock.Description,
                    Qty         = qty,
                    ProductId   = stock.ProductId
                });
            }
            _context.Stocks.UpdateRange(stocks);
            await _context.SaveChangesAsync();

            return(vm);
        }
コード例 #5
0
        private async void AddStock_Click()
        {
            StockInfoItem stockItem = null;

            try
            {
                string localStockNum = StockNumber;

                stockItem = _localStockService.Get(localStockNum);
                var stockData = await _queryService.GetMultipleRealTimeStockAsync(new List <StockInfoItem> {
                    stockItem
                });

                // check if the stock is exist in the list
                if (stockData.Count > 0)
                {
                    StockListViewModel.AddStock(stockData);
                }

                stockItem.Order = _favoriteStockService.GetLastOrder(0);
                _favoriteStockService.Add(stockItem);
            }
            catch (FavoriteStockExistException e)
            {
                Dialog.ShowError(string.Format("目前 {0}({1}) 已經存在於清單內!", stockItem.Name, stockItem.Id));
            }
            catch (Exception e)
            {
                Dialog.ShowError(e.Message +
                                 (e.InnerException == null ? string.Empty :  " (detail : " + e.InnerException + ")"));
            }
            StockNumber = string.Empty;
        }
コード例 #6
0
        /// <summary>
        /// Indexes this instance.
        /// </summary>
        /// <param name="parametersSearch">The parameters search.</param>
        /// <param name="pageSizeString">The page size string.</param>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        public async Task <IActionResult> Index(string parametersSearch, string pageSizeString, int page)
        {
            int pageSize = 20;

            page = page > 0 ? page : 1;
            if (!string.IsNullOrEmpty(pageSizeString))
            {
                pageSize = int.Parse(pageSizeString);
            }
            StockRequest request = new StockRequest()
            {
                Page = new PagingRequest()
                {
                    PageIndex = page - 1, PageSize = pageSize
                }
            };

            try
            {
                StockListViewModel model = null;
                if (!string.IsNullOrEmpty(parametersSearch))
                {
                    request = JsonConvert.DeserializeObject <StockRequest>(parametersSearch);
                }

                request.Page = new PagingRequest()
                {
                    PageIndex = page - 1, PageSize = pageSize
                };
                var result = await this.PostAsync <BaseModel <Stock> >(HttpUriFactory.GetStocksRequest(this.options.Value.APIUrl), request);

                if (result != null)
                {
                    int pageCount    = (result.TotalCount + pageSize - 1) / pageSize;
                    var nextPage     = page == pageCount ? page : (page + 1);
                    var previousPage = page > 1 ? (page - 1) : page;
                    model           = this.CreateDefaultVM <StockListViewModel, StockRequest>(request, parametersSearch, page, pageSize, nextPage, previousPage, pageCount, "Stock", "Index");
                    model.Templates = result.Models;
                }
                else
                {
                    model = this.CreateDefaultVM <StockListViewModel, StockRequest>(request, parametersSearch, page, pageSize, 1, 1, 1, "Stock", "Index");
                }

                if (TempData["Message"] != null)
                {
                    ViewBag.Message = TempData["Message"];
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message;
                Utilities.LogAppError(this.logger, ex);
                return(View(this.CreateDefaultVM <StockListViewModel, StockRequest>(request, parametersSearch, page, pageSize, 1, 1, 1, "Stock", "Index")));
            }
        }
コード例 #7
0
        public IActionResult Index()
        {
            var model = new StockListViewModel()
            {
                stocks = _stockService.GetAllStocks()
            };

            return(View(model));
        }
コード例 #8
0
 public void AutoRefresh_Checked()
 {
     if (IsAutoRefresh)
     {
         StockListViewModel.StartPollingUpdate(TimeInterval);
     }
     else
     {
         StockListViewModel.StopUpdate();
     }
 }
コード例 #9
0
        public ActionResult Edit(StockListViewModel sl)
        {
            ProductStock ps = db.ProductStocks.Where(x => x.StockID == sl.StockID).FirstOrDefault();

            ps.StockQTY = ps.StockQTY + sl.AddQTY;

            db.Entry(ps).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();

            return(RedirectToAction("StockList", "AddStock", new { area = "Backend", page = TempData["savepage"] }));
        }
コード例 #10
0
        private void ListBox_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            StockListViewModel viewModel = this.DataContext as StockListViewModel;

            if (viewModel != null)
            {
                if (viewModel.SelectCommand.CanExecute(null))
                {
                    viewModel.SelectCommand.Execute(null);
                }
            }
        }
コード例 #11
0
        public async Task <IViewComponentResult> InvokeAsync(
            int productId)
        {
            var stocks = await _stockService.GetStocksAsync(productId);

            var stockList = new StockListViewModel()
            {
                Stocks    = stocks,
                ProductId = productId
            };

            return(View(stockList));
        }
コード例 #12
0
        public async Task <ActionResult> Index()
        {
            var stocks = (await _stockService.GetStocks()).Items;
            var total  = await _stockService.GetTotal();

            var model = new StockListViewModel
            {
                StockLists = stocks,
                Total      = total
            };

            return(View(model));
        }
コード例 #13
0
        public void InitTest()
        {
            MockDataManager mDm = new MockDataManager();

            mDm.ExchangesConfigured.Add("ABC");
            mDm.ExchangesConfigured.Add("DEF");
            ViewModelMediator.GetMediator().dataManager = mDm;
            mDm.stockDataBL = new MockStockDataBusinessLogic();
            mDm.ExchangesConfigured.Add("NSE");
            StockListViewModel listVm = new StockListViewModel();

            listVm.SelectedExchange = "NSE";
            Assert.IsTrue(listVm.StockDetailsList.Count > 0);
            Assert.IsTrue(listVm.ListOfAllCompanies.Count > 0);
        }
コード例 #14
0
 private void DeleteStock_Click()
 {
     try
     {
         if (SelectedStockItem != null)
         {
             _favoriteStockService.Delete(SelectedStockItem.Id);
             StockListViewModel.RemoveStock(SelectedStockItem);
         }
     }
     catch (Exception e)
     {
         Dialog.ShowError(e.Message);
     }
 }
コード例 #15
0
        public ActionResult GetTopStocks()
        {
            var stocks = new StockListViewModel {
                StockList = new List <EquityStock>
                {
                    new EquityStock {
                        Symbol = "MSFT", OriginalPrice = 73.9m
                    },
                    new EquityStock {
                        Symbol = "AMD", OriginalPrice = 13.5m
                    }
                }
            };

            return(View(stocks));
        }
コード例 #16
0
        public ActionResult Edit(int id = 1)
        {
            StockListViewModel stk = new StockListViewModel();
            var prodStocks         = db.ProductStocks.Where(x => x.StockID == id).FirstOrDefault();

            stk.StockID        = prodStocks.StockID;
            stk.ProductID      = prodStocks.ProductID;
            stk.ProductColorID = prodStocks.ProductColorID;
            stk.ProductSizeID  = prodStocks.ProductSizeID;
            stk.StockQTY       = prodStocks.StockQTY;
            stk.MinStock       = prodStocks.MinStock;

            var p = db.Products.Where(x => x.ProductID == prodStocks.ProductID).FirstOrDefault();

            stk.ProductName = p.ProductName;

            var s = db.Suppliers.Where(x => x.SupplierID == (int)p.SupplierID).FirstOrDefault();

            stk.SupplierName = s.SupplierName;

            var pc = db.ProductColors.Where(x => x.ProductColorID == prodStocks.ProductColorID).FirstOrDefault();

            stk.ProductColor = db.Colors.Where(x => x.ColorID == pc.ColorID).FirstOrDefault().ColorName;

            var ps = db.ProductSizes.Where(x => x.ProductSizeID == prodStocks.ProductSizeID).FirstOrDefault();

            stk.ProductSize = db.Sizes.Where(x => x.SizeID == ps.SizeID).FirstOrDefault().SizeName;


            stk.OrderQTY = db.OrderDetails
                           .Where(x => x.ProductID == prodStocks.ProductID && x.ProductColorID == prodStocks.ProductColorID &&
                                  x.ProductSizeID == prodStocks.ProductSizeID && x.OrderHeader.OrderStatusID == 1).Select(x => x.OrderQTY).Count();

            stk.CartQTY = db.Carts.Where(x => x.ProductID == prodStocks.ProductID && x.ProductColorID == prodStocks.ProductColorID &&
                                         x.ProductSizeID == prodStocks.ProductSizeID).Select(x => x.Quantity).Count();

            stk.AddQTY = stk.CartQTY + stk.OrderQTY + stk.MinStock - stk.StockQTY;

            return(View(stk));
        }
コード例 #17
0
        public PartialViewResult StockList(StockSearchViewModel model)
        {
            int    pageIndex = model.Page ?? 1;
            string sql       = "Select top 100 * From STOKLAR where sto_kod like '%" + model.StokKod + "%' and sto_isim like '%" + model.StokAd + "%'  order by sto_RECno desc";
            var    stocks    = _stoklarORM.GetList(sql);

            List <StockListViewModel> list = new List <StockListViewModel>();

            foreach (var item in stocks)
            {
                StockListViewModel cus = new StockListViewModel();
                cus.Id      = item.sto_RECno;
                cus.StokKod = item.sto_kod;
                cus.StokAd  = item.sto_isim;
                list.Add(cus);
            }
            model.StockList = list.ToPagedList(pageIndex, 5);
            if (Request.IsAjaxRequest())
            {
                return(PartialView("_stockList", model));
            }
            return(PartialView("_stockPopup", model));
        }
コード例 #18
0
        public async Task <ActionResult> Print()
        {
            List <string> dups   = new List <string>();
            var           brands = (await _productService.GetProduct()).Items;

            foreach (var dups1 in brands)
            {
                dups.Add(dups1.Brand);
            }
            var dups2 = dups.GroupBy(x => x)
                        .Where(g => g.Count() > 1)
                        .Select(x => x.Key)
                        .ToList();
            var model = new StockListViewModel
            {
                ProductLists      = (await _productService.GetProduct()).Items,
                StockLists        = (await _stockService.GetStocks()).Items,
                Total             = await _stockService.GetTotal(),
                LoginInformations = await _sessionAppService.GetCurrentLoginInformations(),
                ProductBrands     = dups2
            };

            return(View(model));
        }
コード例 #19
0
        public StockListWindow(StockListViewModel stockListViewModel)
        {
            InitializeComponent();

            StockListViewModel = stockListViewModel;
        }
コード例 #20
0
 public StockListView(StockListViewModel viewModel)
 {
     InitializeComponent();
     this.DataContext = viewModel;
 }
コード例 #21
0
        public static StockListViewModel GetStockByUser(string username)
        {
            Entities           entities = new Entities();
            StockListViewModel result   = new StockListViewModel();
            DateTime           current  = DateTime.Now;

            var stocks = entities.Assets.Include("StockTransactions").Include("Liabilities").Where(x => x.Username.Equals(username) &&
                                                                                                   x.AssetType == (int)Constants.Constants.ASSET_TYPE.STOCK &&
                                                                                                   !x.DisabledDate.HasValue);

            foreach (var stock in stocks)
            {
                StockViewModel stockViewModel = new StockViewModel();
                stockViewModel.Id   = stock.Id;
                stockViewModel.Name = stock.AssetName;
                stockViewModel.Note = stock.Note;

                foreach (var transactions in stock.StockTransactions.Where(x => !x.DisabledDate.HasValue))
                {
                    StockTransactionViewModel transactionViewModel = StockQueries.CreateViewModel(transactions);
                    stockViewModel.Transactions.Transactions.Add(transactionViewModel);
                }

                var liabilities = stockViewModel.Transactions.Transactions.Select(x => x.Liabilities.Liabilities.Where(y => y.StartDate <= current && y.EndDate >= current));
                stockViewModel.TotalLiabilityValue          = liabilities.Sum(x => x.Sum(y => y.Value.HasValue ? y.Value.Value : 0));
                stockViewModel.TotalOriginalPayment         = liabilities.Sum(x => x.Sum(y => y.MonthlyOriginalPayment));
                stockViewModel.TotalInterestPayment         = liabilities.Sum(x => x.Sum(y => y.MonthlyInterestPayment));
                stockViewModel.TotalMonthlyPayment          = liabilities.Sum(x => x.Sum(y => y.TotalMonthlyPayment));
                stockViewModel.TotalPayment                 = liabilities.Sum(x => x.Sum(y => y.TotalPayment));
                stockViewModel.TotalRemainedValue           = liabilities.Sum(x => x.Sum(y => y.RemainedValue));
                stockViewModel.TotalOriginalInterestPayment = liabilities.Sum(x => x.Sum(y => y.OriginalInterestPayment));
                stockViewModel.TotalInterestRate            = stockViewModel.TotalLiabilityValue > 0 ? stockViewModel.TotalOriginalInterestPayment / stockViewModel.TotalLiabilityValue * 12 : 0;
                stockViewModel.RowSpan = stockViewModel.Transactions.Transactions.Any() ? stockViewModel.Transactions.Transactions.Count() + stockViewModel.Transactions.Transactions.Select(x => x.Liabilities.Liabilities).Count() + 4 : 4;

                if (stockViewModel.Transactions.Transactions.Any())
                {
                    stockViewModel.RowSpan = 4;
                    bool flag = false;
                    foreach (var transaction in stockViewModel.Transactions.Transactions)
                    {
                        if (transaction.Liabilities.Liabilities.Count() > 0)
                        {
                            if (flag == false)
                            {
                                flag = true;
                            }
                            stockViewModel.RowSpan += transaction.Liabilities.Liabilities.Count();
                        }
                    }
                    if (flag == true)
                    {
                        stockViewModel.RowSpan += 1;
                    }
                }
                else
                {
                    stockViewModel.RowSpan = 4;
                }

                result.Stocks.Add(stockViewModel);
            }

            result.TotalValue    = result.Stocks.Select(x => x.Transactions.Transactions).Sum(x => x.Sum(y => y.StockValue.Value));
            result.IsInitialized = UserQueries.IsCompleteInitialized(username);

            return(result);
        }
コード例 #22
0
        // GET: Backend/AddStock
        public ActionResult StockList(int?page)
        {
            //記錄目前頁數,若是空值就給1
            TempData["savepage"] = page ?? 1;

            var prodStocks   = db.ProductStocks.ToList();
            var orderDetails = db.OrderDetails.Where(x => x.OrderHeader.OrderStatusID == 1).ToList();
            var prodColors   = db.ProductColors.ToList();
            var prodSizes    = db.ProductSizes.ToList();
            var colors       = db.Colors.ToList();
            var sizes        = db.Sizes.ToList();
            var suppliers    = db.Suppliers.ToList();
            var carts        = db.Carts.ToList();
            var prods        = db.Products.ToList();

            List <StockListViewModel> prodStockList = new List <StockListViewModel>();

            foreach (var item in prodStocks)
            {
                StockListViewModel stk = new StockListViewModel();
                stk.StockID        = item.StockID;
                stk.ProductColorID = item.ProductColorID;
                stk.ProductSizeID  = item.ProductSizeID;
                stk.MinStock       = item.MinStock;
                stk.StockQTY       = item.StockQTY;

                stk.OrderQTY = orderDetails
                               .Where(x => x.ProductID == item.ProductID && x.ProductColorID == item.ProductColorID &&
                                      x.ProductSizeID == item.ProductSizeID).Select(x => x.OrderQTY).Count();

                stk.CartQTY = carts.Where(x => x.ProductID == item.ProductID && x.ProductColorID == item.ProductColorID &&
                                          x.ProductSizeID == item.ProductSizeID).Select(x => x.Quantity).Count();

                stk.AddQTY = stk.CartQTY + stk.OrderQTY + stk.MinStock - stk.StockQTY;

                var p = prods.Where(x => x.ProductID == item.ProductID).FirstOrDefault();
                stk.ProductName = p.ProductName;

                var s = suppliers.Where(x => x.SupplierID == (int)p.SupplierID).FirstOrDefault();
                stk.SupplierName = s.SupplierName;
                stk.SupplierID   = s.SupplierID;

                var pc = prodColors.Where(x => x.ProductColorID == item.ProductColorID).FirstOrDefault();
                stk.ProductColor = colors.Where(x => x.ColorID == pc.ColorID).FirstOrDefault().ColorName;

                if ((pc.PhotoID == null ? 0 : pc.PhotoID) > 0)
                {
                    stk.PhotoID = (int)pc.PhotoID;
                }

                var ps = prodSizes.Where(x => x.ProductSizeID == item.ProductSizeID).FirstOrDefault();
                stk.ProductSize = sizes.Where(x => x.SizeID == ps.SizeID).FirstOrDefault().SizeName;

                if (stk.AddQTY > 0)
                {
                    prodStockList.Add(stk);
                }
            }

            return(View(prodStockList.OrderByDescending(p => p.SupplierID).ToPagedList(page ?? 1, 5)));
        }
コード例 #23
0
 public StockViewController(IControllerFactory factory)
     : base(factory)
 {
     listViewModel = new StockListViewModel(factory, this);
 }
コード例 #24
0
 public async Task <IActionResult> UpdateStock([FromBody] StockListViewModel vm) => Ok(await _stockService.Put(vm));
コード例 #25
0
        public ActionResult _StockTable()
        {
            StockListViewModel model = StockQueries.GetStockByUser(UserQueries.GetCurrentUsername());

            return(PartialView(model));
        }