Esempio n. 1
0
        public async Task <IActionResult> Index()
        {
            await this.heroService.ValidateCurrentHeroLocation(WorkStatus.Mine);

            MineViewModel viewModel = await this.heroService.GetCurrentHeroViewModel <MineViewModel>();

            return(this.View(viewModel));
        }
Esempio n. 2
0
        public JsonResult Minesweeper([FromBody] MinesweeperBindingModel model)
        {
            var board = MinesweeperBoard.Decrypt(model.encodedBoard).Split(';').ToList();

            var gameEndedSuccessfully   = MinesweeperBoard.CheckIfGameEndedSuccessfully(board, model.flagged);
            var gameEndedUnsuccessfully = MinesweeperBoard.CheckIfMineIsHit(board, model.currentId);

            MineViewModel output = MinesweeperBoard.TilesToReveal(model.currentId, board, new MineViewModel());

            output.gameEnded = gameEndedSuccessfully || gameEndedUnsuccessfully;

            if (gameEndedUnsuccessfully)
            {
                output.mines = new List <Mine>();
                foreach (var mine in board)
                {
                    output.mines.Add(new Mine(mine, 0));
                }
            }

            return(new JsonResult(output));
        }
Esempio n. 3
0
        public MinePage()
        {
            InitializeComponent();

            BindingContext = viewModel = new MineViewModel();
        }
Esempio n. 4
0
        public static MineViewModel TilesToReveal(string currentId, List <string> mines, MineViewModel minesToReturn)
        {
            if (minesToReturn.mines.FirstOrDefault(p => p.currentId == currentId) != null)
            {
                return(minesToReturn);
            }
            if (mines.Contains(currentId))
            {
                return(minesToReturn);
            }
            int numberToShow = 0;

            for (int i = 0; i < 3; i++)
            {
                for (int k = 0; k < 3; k++)
                {
                    string id = $"{int.Parse(currentId.Split('_')[0]) - 1 + i}_{int.Parse(currentId.Split('_')[1]) - 1 + k}";
                    if (mines.Contains(id))
                    {
                        numberToShow++;
                    }
                }
            }

            minesToReturn.Add(new Mine(currentId, numberToShow));

            if (numberToShow == 0)
            {
                for (int i = 0; i < 3; i++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        var rowAndCol = currentId.Split('_').Select(int.Parse).ToList();
                        if (rowAndCol[0] - 1 + i <1 ||
                                                  rowAndCol[0] - 1 + i> Cols_In_Game ||
                            rowAndCol[1] - 1 + k <1 ||
                                                  rowAndCol[1] - 1 + k> Rows_In_Game)
                        {
                            continue;
                        }
                        string id = $"{int.Parse(currentId.Split('_')[0]) - 1 + i}_{int.Parse(currentId.Split('_')[1]) - 1 + k}";
                        TilesToReveal(id, mines, minesToReturn);
                    }
                }
            }

            return(minesToReturn);
        }
Esempio n. 5
0
        public ActionResult Index()
        {
            MineViewModel model = new MineViewModel();

            model.Account = User.Identity.Name;
            model.Avatar  = _db.tbl_UserAccount.Single(m => m.user_Account == model.Account).user_Avatar;
            model.Cover   = _db.tbl_UserAccount.Single(m => m.user_Account == model.Account).user_Cover;
            model.Id      = AccountManager.GetId(model.Account);

            var plans = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 1).OrderByDescending(m => m.mark_Time);

            model.PlanCount  = plans.Count();
            model.MoviePlans = new List <MarkItem>();
            if (model.PlanCount != 0)
            {
                foreach (var item in plans.Take(10))
                {
                    MarkItem mitem = new MarkItem();
                    mitem.Id     = item.mark_Target;
                    mitem.Avatar = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Avatar;
                    mitem.Title  = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Title;
                    model.MoviePlans.Add(mitem);
                }
            }

            var finishs = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 2).OrderByDescending(m => m.mark_Time);

            model.FinishCount  = finishs.Count();
            model.MovieFinishs = new List <MarkItem>();
            if (model.FinishCount != 0)
            {
                foreach (var item in finishs.Take(10))
                {
                    MarkItem mitem = new MarkItem();
                    mitem.Id     = item.mark_Target;
                    mitem.Avatar = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Avatar;
                    mitem.Title  = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Title;
                    model.MovieFinishs.Add(mitem);
                }
            }

            var favors = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 3).OrderByDescending(m => m.mark_Time);

            model.FavorCount  = favors.Count();
            model.MovieFavors = new List <MarkItem>();
            if (model.FavorCount != 0)
            {
                foreach (var item in favors.Take(10))
                {
                    MarkItem mitem = new MarkItem();
                    mitem.Id     = item.mark_Target;
                    mitem.Avatar = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Avatar;
                    mitem.Title  = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Title;
                    model.MovieFavors.Add(mitem);
                }
            }

            var collects = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 4).OrderByDescending(m => m.mark_Time);

            model.CollectCount  = collects.Count();
            model.CelebCollects = new List <MarkItem>();
            if (model.CollectCount != 0)
            {
                foreach (var item in collects.Take(10))
                {
                    MarkItem mitem = new MarkItem();
                    mitem.Id     = item.mark_Target;
                    mitem.Avatar = _db.tbl_Celebrity.Single(m => m.celeb_Id == item.mark_Target).celeb_Avatar;
                    mitem.Title  = _db.tbl_Celebrity.Single(m => m.celeb_Id == item.mark_Target).celeb_Name;
                    model.CelebCollects.Add(mitem);
                }
            }

            var albums = _db.tbl_Album.Where(a => a.album_User == model.Id).OrderByDescending(a => a.album_AlterTime);

            model.AlbumCount = albums.Count();
            model.Albums     = new List <AlbumListItem>();
            if (model.AlbumCount != 0)
            {
                foreach (var item in albums)
                {
                    model.Albums.Add(new AlbumListItem(item));
                }
            }

            var comments = _db.tbl_Comment.Where(c => c.cmt_User == model.Id).OrderByDescending(c => c.cmt_Time);

            model.CommentCount = comments.Count();
            model.Comments     = new List <CommentItem>();
            if (model.AlbumCount != 0)
            {
                foreach (var item in comments)
                {
                    CommentItem citem = new CommentItem();
                    citem.MovieID    = item.cmt_Movie;
                    citem.MovieTitle = MovieManager.GetTitle(item.cmt_Movie);
                    citem.Comment    = item.cmt_Content;
                    citem.Time       = ((System.DateTime)item.cmt_Time).ToString("yyyy-MM-dd hh:mm:ss");
                    model.Comments.Add(citem);
                }
            }

            return(View(model));
        }