public WHPOContentGridViewModel(IEnumerable <PurchaseItem> PurchaseItems
                                        , IWarehouseRepository _warehouseRepo
                                        , IWarehousePositionRepository _warehousePositonRepo
                                        , IWHStockRepository _whstockRepo)
        {
            rows  = new List <WHPOContentGridRowModel>();
            Page  = 1;
            Total = PurchaseItems.Count();
            foreach (PurchaseItem _item in PurchaseItems)
            {
                string  warehoseListStr   = string.Empty;
                string  whpositionListStr = string.Empty;
                WHStock _stock            = (_whstockRepo.WHStocks.Where(s => s.PartNum == _item.PartNumber && s.PartID == _item.PartID && s.Enable == true).FirstOrDefault() ?? new WHStock());
                if (_stock.ID == 0)
                {
                    warehoseListStr   = "<select id='wh" + _item.PurchaseItemID.ToString() + "' class='form-control'>";
                    whpositionListStr = "<select id='whposi" + _item.PurchaseItemID.ToString() + "' class='form-control'>";
                    foreach (var w in _warehouseRepo.Warehouses.ToList())
                    {
                        if (_stock.WarehouseID == w.WarehouseID)
                        {
                            warehoseListStr = warehoseListStr + "<option value='" + w.WarehouseID.ToString() + "' selected>" + w.Name + "</option>";
                        }
                        else
                        {
                            warehoseListStr = warehoseListStr + "<option value='" + w.WarehouseID.ToString() + "'>" + w.Name + "</option>";
                        }
                    }
                    warehoseListStr = warehoseListStr + "</select>";
                    List <WarehousePosition> _whpositionList = _warehousePositonRepo.QueryByWarehouse(_warehouseRepo.Warehouses.FirstOrDefault().WarehouseID).ToList();
                    foreach (var p in _whpositionList)
                    {
                        if (_stock.WarehousePositionID == p.WarehousePositionID)
                        {
                            whpositionListStr = whpositionListStr + "<option value='" + p.WarehousePositionID.ToString() + "' selected>" + p.Name + "</option>";
                        }
                        else
                        {
                            whpositionListStr = whpositionListStr + "<option value='" + p.WarehousePositionID.ToString() + "'>" + p.Name + "</option>";
                        }
                    }
                }
                else
                {
                    warehoseListStr   = "<input id='wh" + _item.PurchaseItemID.ToString() + "' value='" + _stock.WarehouseID.ToString() + "' hidden/> " + _warehouseRepo.QueryByID(_stock.WarehouseID).Name;
                    whpositionListStr = "<input id='whposi" + _item.PurchaseItemID.ToString() + "' value='" + _stock.WarehousePositionID.ToString() + "' hidden/> " + _warehousePositonRepo.QueryByID(_stock.WarehousePositionID).Name;
                }

                whpositionListStr = whpositionListStr + "</select>";
                rows.Add(new WHPOContentGridRowModel(_item, warehoseListStr, whpositionListStr, _stock));
            }
        }
        public WarehouseStockGridViewModel(List <WHStock> StockItems,
                                           IUserRepository UserRepo,
                                           IPurchaseItemRepository PurchaseItemRepo,
                                           IPurchaseTypeRepository PurchaseTypeRepo,
                                           IStockTypeRepository StockTypeRepo,
                                           IWarehouseRepository WarehouseRepo,
                                           IWarehousePositionRepository WarehousePositionRepo,
                                           IWHPartRepository WHPartRepository)
        {
            string UserName, PurchaseUserName, WarehouseUserName, PurchaseType, StockType, Warehouse, WarehousePosition;

            foreach (var _item in StockItems)
            {
                //PurchaseItem _purchaseItem = PurchaseItemRepo.QueryByID(_item.PurchaseItemID);
                try
                {
                    //UserName = UserRepo.GetUserByID(_item.RequestUserID).FullName;
                    UserName = "";
                }
                catch
                {
                    UserName = "";
                }
                try
                {
                    //PurchaseUserName = UserRepo.GetUserByID(_purchaseItem.PurchaseUserID).FullName;
                    PurchaseUserName = "";
                }
                catch
                {
                    PurchaseUserName = "";
                }
                try
                {
                    //WarehouseUserName = UserRepo.GetUserByID(_item.WarehouseUserID).FullName;
                    WarehouseUserName = "";
                }
                catch
                {
                    WarehouseUserName = "";
                }

                try
                {
                    PurchaseType = PurchaseTypeRepo.QueryByID(_item.PurchaseType).Name;
                }
                catch
                {
                    PurchaseType = "";
                }
                try
                {
                    var _PartNumStrs = _item.PartNum.Split('-');
                    StockType = StockTypeRepo.StockTypes.Where(s => s.Code == _PartNumStrs[0]).FirstOrDefault().Name;//StockTypeRepo.QueryByID(_item.StockType).Name;
                }
                catch
                {
                    StockType = "";
                }
                try
                {
                    Warehouse = WarehouseRepo.QueryByID(_item.WarehouseID).Name;
                }
                catch
                {
                    Warehouse = "";
                }
                try
                {
                    WarehousePosition = WarehousePositionRepo.QueryByID(_item.WarehousePositionID).Name;
                }
                catch
                {
                    WarehousePosition = "";
                }
                WHPart _part1 = WHPartRepository.GetPart(_item.PartNum, _item.PartID) ?? new WHPart();
                rows.Add(new WarehouseStockGridRowModel(_item,
                                                        _part1,
                                                        //UserName,
                                                        //PurchaseUserName,
                                                        //WarehouseUserName,
                                                        PurchaseType,
                                                        StockType,
                                                        Warehouse,
                                                        WarehousePosition));
            }
        }