public ActionResult GetPieces(int page)
        {
            if (Session["AdminUser"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }
            var result        = db.GetPiecsList(page);
            var lastPage      = db.LastPageNumber();
            var brandList     = new BLL_Brand().GetAllBrand();
            var deviceList    = new BLL_Device().GetAllDevice();
            var pieceTypeList = new BLL_PieceType().GetAllPieceType();
            var finalPieces   = new List <FinalPiece>();

            foreach (var piece in result)
            {
                FinalPiece p = new FinalPiece();
                p.ID            = piece.ID;
                p.BrandId       = piece.BrandId;
                p.BrandName     = brandList.FirstOrDefault(b => b.ID == piece.BrandId)?.EnglishName;
                p.DeviceId      = piece.DeviceId;
                p.DeviceName    = deviceList.FirstOrDefault(d => d.ID == piece.DeviceId)?.EnglishName;
                p.PieceTypeId   = piece.PieceTypeId;
                p.PieceTypeName = pieceTypeList.FirstOrDefault(d => d.ID == piece.PieceTypeId)?.PersianName;
                p.Price         = piece.Price;
                p.FileName      = piece.FileName;
                //p.Date = piece.Date.ToString("yyyy/MM/dd");
                p.Date     = PublicFunction.ConvertMiladiToShamsi(piece.CreateDate);
                p.IsSlider = piece.IsSlider;
                finalPieces.Add(p);
            }
            object finalResult = new Tuple <List <FinalPiece>, int, int, List <Brand>, List <Device>, List <Piecetype> >(finalPieces, page, lastPage, brandList, deviceList, pieceTypeList);

            return(Json(finalResult));
        }
Beispiel #2
0
        public Action GetBestPlacement(State state)
        {
            Queue <FinalPiece> finalPieces = new Queue <FinalPiece>(
                GenerateAllFinalPossibilities(state, state.currentPiece).OrderBy(finalPiece => finalPiece.GetWeight()));

            if (state.currentHeldPiece != PieceType.Empty)
            {
                FinalPiece heldPiece =
                    GetBestPiece(GenerateAllFinalPossibilities(state, new Piece(state.currentHeldPiece)));
                if (heldPiece.GetWeight() < finalPieces.Peek().GetWeight())
                {
                    return(new Action(ActionType.Hold, null));
                }
            }
            else
            {
                return(new Action(ActionType.Hold, null));
            }

            Stack <PathNode> finalPath = null;

            while (finalPath == null)
            {
                if (finalPieces.Count <= 0)
                {
                    return(null);
                }

                finalPath = Pathfinder.pathfinder.FindPath(state, state.currentPiece, finalPieces.Dequeue().Piece);
            }

            return(new Action(ActionType.Place, finalPath));
        }
Beispiel #3
0
        private FinalPiece GetBestPiece(List <FinalPiece> pieces)
        {
            FinalPiece finalPiece = pieces.First();

            foreach (FinalPiece piece in pieces)
            {
                if (piece.GetWeight() < finalPiece.GetWeight())
                {
                    finalPiece = piece;
                }
            }

            return(finalPiece);
        }
Beispiel #4
0
        public ActionResult SearchPiece(int pieceTypeId, int brandId, int deviceId, int page)
        {
            BLL_Brand     dbBrand     = new BLL_Brand();
            BLL_Piece     dbPiece     = new BLL_Piece();
            BLL_Device    dbDevice    = new BLL_Device();
            BLL_PieceType dbPieceType = new BLL_PieceType();

            var brandList     = dbBrand.GetAllBrand();
            var deviceList    = dbDevice.GetAllDevice();
            var pieceTypeList = dbPieceType.GetAllPieceType();

            List <Piece> pieces      = dbPiece.SearchPiece(pieceTypeId, brandId, deviceId, page).ToList();
            var          finalPieces = new List <FinalPiece>();

            foreach (var piece in pieces)
            {
                FinalPiece p = new FinalPiece
                {
                    ID            = piece.ID,
                    BrandId       = piece.BrandId,
                    BrandName     = brandList.FirstOrDefault(b => b.ID == piece.BrandId)?.EnglishName,
                    DeviceId      = piece.DeviceId,
                    DeviceName    = deviceList.FirstOrDefault(d => d.ID == piece.DeviceId)?.EnglishName,
                    PieceTypeId   = piece.PieceTypeId,
                    PieceTypeName = pieceTypeList.FirstOrDefault(d => d.ID == piece.PieceTypeId)?.PersianName,
                    Price         = piece.Price,
                    FileName      = piece.FileName,
                    Date          = PublicFunction.ConvertMiladiToShamsi(piece.CreateDate),
                    IsSlider      = piece.IsSlider
                };
                finalPieces.Add(p);
            }

            var    lastPage  = dbPiece.SearchPiecesLastPage(pieceTypeId, brandId, deviceId);
            string brandName = "";

            brandName = brandId == 0 ? "" : dbBrand.GetAllBrand().Find(b => b.ID == brandId).PersianName;

            object finalResult = new Tuple <List <FinalPiece>, int, int, List <Brand>, List <Device>, List <Piecetype>, string>(finalPieces, page, lastPage, brandList, deviceList, pieceTypeList, brandName);

            return(Json(finalResult));
        }
Beispiel #5
0
        private bool PositionIsValid(State state, Piece piece, int anchor, Vector2i position,
                                     out FinalPiece modifiedPiece)
        {
            modifiedPiece = null;

            Piece adjustedPiece = AdjustPieceToPosition(piece, position, anchor);

            if (PieceIsValid(state, adjustedPiece))
            {
                GetHoles(state, adjustedPiece, out int closedHoles, out int holes);
                modifiedPiece = new FinalPiece
                {
                    Piece           = adjustedPiece,
                    NbOfHoles       = holes,
                    LinesCleared    = GetLinesCleared(state, adjustedPiece),
                    bumpiness       = CalculateBumpiness(state, adjustedPiece),
                    AggregateHeight = GetAggregateHeight(state, adjustedPiece),
                    TopHeight       = adjustedPiece.getGlobalBlocks.Max(pos => pos.Y)
                };
                return(true);
            }

            return(false);
        }
Beispiel #6
0
        public ActionResult IndexByDeviceId(int id, int page)
        {
            //if (Request.Cookies["BorjiShop"] != null)
            //{
            //    string rememberMe = Request.Cookies["BorjiShop"].Value;
            //    if (!string.IsNullOrEmpty(rememberMe))
            //    {
            //        var user = new BLL_User().ExistRememberMe(rememberMe);
            //        if (user != null)
            //        {
            //            Session["User"] = user;
            //        }
            //    }
            //}

            BLL_Brand     dbBrand     = new BLL_Brand();
            BLL_Piece     dbPiece     = new BLL_Piece();
            BLL_Device    dbDevice    = new BLL_Device();
            BLL_PieceType dbPieceType = new BLL_PieceType();

            var brandList     = dbBrand.GetAllBrand();
            var deviceList    = dbDevice.GetAllDevice();
            var pieceTypeList = dbPieceType.GetAllPieceType();

            ViewBag.Brands    = dbBrand.GetAllBrand();
            ViewBag.Devices   = deviceList;
            ViewBag.PieceType = pieceTypeList;
            List <Piece> slider      = dbPiece.GetAllPiece().Where(p => p.IsSlider).Take(5).ToList();
            var          finalSlider = new List <FinalPiece>();

            foreach (var piece in slider)
            {
                FinalPiece p = new FinalPiece();
                p.ID            = piece.ID;
                p.BrandId       = piece.BrandId;
                p.BrandName     = brandList.FirstOrDefault(b => b.ID == piece.BrandId)?.EnglishName;
                p.DeviceId      = piece.DeviceId;
                p.DeviceName    = deviceList.FirstOrDefault(d => d.ID == piece.DeviceId)?.EnglishName;
                p.PieceTypeId   = piece.PieceTypeId;
                p.PieceTypeName = pieceTypeList.FirstOrDefault(d => d.ID == piece.PieceTypeId)?.PersianName;
                p.Price         = piece.Price;
                p.FileName      = piece.FileName;
                //p.Date = piece.Date.ToString("yyyy/MM/dd");
                p.Date     = PublicFunction.ConvertMiladiToShamsi(piece.CreateDate);
                p.IsSlider = piece.IsSlider;
                finalSlider.Add(p);
            }
            ViewBag.Slider = finalSlider;

            List <Piece> pieces      = dbPiece.GetPiecesListByDeviceList(id, page).ToList();
            var          finalPieces = new List <FinalPiece>();

            foreach (var piece in pieces)
            {
                FinalPiece p = new FinalPiece();
                p.ID            = piece.ID;
                p.BrandId       = piece.BrandId;
                p.BrandName     = brandList.FirstOrDefault(b => b.ID == piece.BrandId)?.EnglishName;
                p.DeviceId      = piece.DeviceId;
                p.DeviceName    = deviceList.FirstOrDefault(d => d.ID == piece.DeviceId)?.EnglishName;
                p.PieceTypeId   = piece.PieceTypeId;
                p.PieceTypeName = pieceTypeList.FirstOrDefault(d => d.ID == piece.PieceTypeId)?.PersianName;
                p.Price         = piece.Price;
                p.FileName      = piece.FileName;
                p.Date          = PublicFunction.ConvertMiladiToShamsi(piece.CreateDate);
                p.IsSlider      = piece.IsSlider;
                finalPieces.Add(p);
            }
            ViewBag.Pieces   = finalPieces;
            ViewBag.Page     = page;
            ViewBag.LastPage = dbPiece.LastPageNumber();
            return(View("Index"));
        }