示例#1
0
        public FileResult Download(string username)
        {
            List <Game>      games        = db.Games.Where(x => x.Player1 == username || x.Player2 == username).ToList();
            Game             game         = games.OrderBy(x => x.Id).Last();
            List <FifthGame> fifthGames   = db.FifthGames.Where(x => x.Player1 == username || x.Player2 == username).ToList();
            FifthGame        fifthGame    = fifthGames.OrderBy(x => x.Id).Last();
            GamingUser       user         = db.Users.First(x => x.Username == username);
            GamingUser       firstPlayer  = db.Users.First(x => x.Username == game.Player1);
            GamingUser       secondPlayer = db.Users.First(x => x.Username == game.Player2);

            using (MemoryStream ms = new MemoryStream())
            {
                string    pathFile  = HttpContext.Server.MapPath(@"~/Content/ExcelTemplate.xlsx");
                Workbook  workbook  = new Workbook(pathFile);
                Worksheet worksheet = workbook.Worksheets[0];
                worksheet.AutoFitColumns();
                worksheet.Name = "Statistika";

                FillTableForGame(game, firstPlayer, secondPlayer, worksheet);
                FillTableForFifthGame(fifthGame, user, worksheet);
                FillSurvey(user, worksheet);
                FillTasks(user, worksheet);
                RemoveSuperfluousErrorWarnings(worksheet);

                string dateTime = "" + DateTime.Now.Hour + ":" + DateTime.Now.Minute + "_" + DateTime.Now.Day + "_" + DateTime.Now.Month + "_" + DateTime.Now.Year;
                string fileName = "Statistika_" + dateTime + ".xlsx";
                workbook.Save(ms, SaveFormat.Xlsx);
                ms.Seek(0, SeekOrigin.Begin);
                return(File(ms.ToArray(), System.Net.Mime.MediaTypeNames.Application.Octet, fileName));
            }
        }
示例#2
0
        private static void FillTableForFifthGame(FifthGame fifthGame, GamingUser user, Worksheet worksheet)
        {
            worksheet.Cells["A6"].Value = user.FirstName + " " + user.LastName;

            int gameFivePlayer11Points = (int)fifthGame.Player1Game1Points;
            int gameFivePlayer12Points = (int)fifthGame.Player1Game2Points;
            int gameFivePlayer13Points = (int)fifthGame.Player1Game3Points;
            int gameFivePlayer14Points = (int)fifthGame.Player1Game4Points;
            int gameFivePlayer15Points = (int)fifthGame.Player1Game5Points;

            int gameFivePlayer21Points = (int)fifthGame.Player2Game1Points;
            int gameFivePlayer22Points = (int)fifthGame.Player2Game2Points;
            int gameFivePlayer23Points = (int)fifthGame.Player2Game3Points;
            int gameFivePlayer24Points = (int)fifthGame.Player2Game4Points;
            int gameFivePlayer25Points = (int)fifthGame.Player2Game5Points;


            if (fifthGame.Player2 == user.Username)
            {
                gameFivePlayer11Points = (int)fifthGame.Player2Game1Points;
                gameFivePlayer12Points = (int)fifthGame.Player2Game2Points;
                gameFivePlayer13Points = (int)fifthGame.Player2Game3Points;
                gameFivePlayer14Points = (int)fifthGame.Player2Game4Points;
                gameFivePlayer15Points = (int)fifthGame.Player2Game5Points;

                gameFivePlayer21Points = (int)fifthGame.Player1Game1Points;
                gameFivePlayer22Points = (int)fifthGame.Player1Game2Points;
                gameFivePlayer23Points = (int)fifthGame.Player1Game3Points;
                gameFivePlayer24Points = (int)fifthGame.Player1Game4Points;
                gameFivePlayer25Points = (int)fifthGame.Player1Game5Points;
            }

            worksheet.Cells["B6"].Value = gameFivePlayer11Points;
            worksheet.Cells["C6"].Value = gameFivePlayer12Points;
            worksheet.Cells["D6"].Value = gameFivePlayer13Points;
            worksheet.Cells["E6"].Value = gameFivePlayer14Points;
            worksheet.Cells["F6"].Value = gameFivePlayer15Points;

            worksheet.Cells["B7"].Value = gameFivePlayer21Points;
            worksheet.Cells["C7"].Value = gameFivePlayer22Points;
            worksheet.Cells["D7"].Value = gameFivePlayer23Points;
            worksheet.Cells["E7"].Value = gameFivePlayer24Points;
            worksheet.Cells["F7"].Value = gameFivePlayer25Points;

            worksheet.Cells["G6"].Value = gameFivePlayer11Points + gameFivePlayer12Points + gameFivePlayer13Points + gameFivePlayer14Points + gameFivePlayer15Points;
            worksheet.Cells["G7"].Value = gameFivePlayer21Points + gameFivePlayer22Points + gameFivePlayer23Points + gameFivePlayer24Points + gameFivePlayer25Points;
        }
        public IHttpActionResult CheckForOpponent2()
        {
            string username = (string)HttpContext.Current.Session["username"];

            var context = GlobalHost.ConnectionManager.GetHubContext <Tasks>();

            if (AppCache.AvailablePlayersFifthGame.Count(x => x != username) == 0)
            {
                AppCache.AvailablePlayersFifthGame.Add(username);
                return(Content(HttpStatusCode.BadRequest, "Nema korisnika na mreži koji su spremni za petu igru, dodat na cekanje..."));
            }
            else
            {
                string    opponent = AppCache.AvailablePlayersFifthGame.FirstOrDefault();
                FifthGame newGame  = new FifthGame
                {
                    Player1            = opponent,
                    Player2            = username,
                    Player1Game1Points = 0,
                    Player2Game1Points = 0,
                    Player1Game2Points = 0,
                    Player2Game2Points = 0,
                    Player1Game3Points = 0,
                    Player2Game3Points = 0,
                    Player1Game4Points = 0,
                    Player2Game4Points = 0,
                    Player1Game5Points = 0,
                    Player2Game5Points = 0
                };
                db.FifthGames.Add(newGame);
                db.SaveChanges();
                context.Clients.All.tellOpponentThatGameIsCreated2(opponent, newGame.Id);
                AppCache.AvailablePlayersFifthGame.Remove(opponent);
                return(Ok(newGame.Id));
            }
        }
        public IHttpActionResult PlayCard5([FromBody] PlayCardRequestFifthGame request)
        {
            string    username    = (string)HttpContext.Current.Session["username"];
            FifthGame currentGame = db.FifthGames.FirstOrDefault(x => x.Id == request.GameId);

            // ako sam prvi igrac
            if (currentGame.Player1 == username)
            {
                if (request.CardNumber == 1)
                {
                    switch (request.NumberOfPlay)
                    {
                    case 1:
                        currentGame.Player1Game1Points += 5;
                        currentGame.Player1Game1Played  = true;
                        break;

                    case 2:
                        currentGame.Player1Game2Points += 5;
                        currentGame.Player1Game2Played  = true;
                        break;

                    case 3:
                        currentGame.Player1Game3Points += 5;
                        currentGame.Player1Game3Played  = true;
                        break;

                    case 4:
                        currentGame.Player1Game4Points += 5;
                        currentGame.Player1Game4Played  = true;
                        break;

                    case 5:
                        currentGame.Player1Game5Points += 5;
                        currentGame.Player1Game5Played  = true;
                        break;
                    }
                }
                else
                {
                    switch (request.NumberOfPlay)
                    {
                    case 1:
                        currentGame.Player2Game1Points += 10;
                        currentGame.Player1Game1Played  = true;

                        break;

                    case 2:
                        currentGame.Player2Game2Points += 10;
                        currentGame.Player1Game2Played  = true;
                        break;

                    case 3:
                        currentGame.Player2Game3Points += 10;
                        currentGame.Player1Game3Played  = true;
                        break;

                    case 4:
                        currentGame.Player2Game4Points += 10;
                        currentGame.Player1Game4Played  = true;
                        break;

                    case 5:
                        currentGame.Player2Game5Points += 10;
                        currentGame.Player1Game5Played  = true;
                        break;
                    }
                }
                db.SaveChanges();
                bool isCurrentGamePlayed = (request.NumberOfPlay == 1 && currentGame.Player2Game1Played) ||
                                           (request.NumberOfPlay == 2 && currentGame.Player2Game2Played) ||
                                           (request.NumberOfPlay == 3 && currentGame.Player2Game3Played) ||
                                           (request.NumberOfPlay == 4 && currentGame.Player2Game4Played) ||
                                           (request.NumberOfPlay == 5 && currentGame.Player2Game5Played);

                if (isCurrentGamePlayed)
                {
                    var context = GlobalHost.ConnectionManager.GetHubContext <Tasks>();
                    int player1CurrentGamePoints = 0;
                    int player2CurrentGamePoints = 0;
                    switch (request.NumberOfPlay)
                    {
                    case 1:
                        player1CurrentGamePoints = currentGame.Player1Game1Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game1Points.Value;
                        break;

                    case 2:
                        player1CurrentGamePoints = currentGame.Player1Game2Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game2Points.Value;
                        break;

                    case 3:
                        player1CurrentGamePoints = currentGame.Player1Game3Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game3Points.Value;
                        break;

                    case 4:
                        player1CurrentGamePoints = currentGame.Player1Game4Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game4Points.Value;
                        break;

                    case 5:
                        player1CurrentGamePoints = currentGame.Player1Game5Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game5Points.Value;
                        break;
                    }
                    context.Clients.All.opponentPlayed5(currentGame.Player2, player1CurrentGamePoints, player2CurrentGamePoints);
                    PlayCardResponse response = new PlayCardResponse
                    {
                        OpponentPoints = player2CurrentGamePoints,
                        MyPoints       = player1CurrentGamePoints
                    };
                    return(Ok(response));
                }
                else
                {
                    return(Content(HttpStatusCode.BadRequest, "Cekanje na drugog igraca da odigra..."));
                }
            }
            else
            // ako sam drugi igrac
            {
                if (request.CardNumber == 1)
                {
                    switch (request.NumberOfPlay)
                    {
                    case 1:
                        currentGame.Player2Game1Points += 5;
                        currentGame.Player2Game1Played  = true;
                        break;

                    case 2:
                        currentGame.Player2Game2Points += 5;
                        currentGame.Player2Game2Played  = true;
                        break;

                    case 3:
                        currentGame.Player2Game3Points += 5;
                        currentGame.Player2Game3Played  = true;
                        break;

                    case 4:
                        currentGame.Player2Game4Points += 5;
                        currentGame.Player2Game4Played  = true;
                        break;

                    case 5:
                        currentGame.Player2Game5Points += 5;
                        currentGame.Player2Game5Played  = true;
                        break;
                    }
                }
                else
                {
                    switch (request.NumberOfPlay)
                    {
                    case 1:
                        currentGame.Player1Game1Points += 10;
                        currentGame.Player2Game1Played  = true;

                        break;

                    case 2:
                        currentGame.Player1Game2Points += 10;
                        currentGame.Player2Game2Played  = true;
                        break;

                    case 3:
                        currentGame.Player1Game3Points += 10;
                        currentGame.Player2Game3Played  = true;
                        break;

                    case 4:
                        currentGame.Player1Game4Points += 10;
                        currentGame.Player2Game4Played  = true;
                        break;

                    case 5:
                        currentGame.Player1Game5Points += 10;
                        currentGame.Player2Game5Played  = true;
                        break;
                    }
                }
                db.SaveChanges();
                bool isCurrentGamePlayed = (request.NumberOfPlay == 1 && currentGame.Player1Game1Played) ||
                                           (request.NumberOfPlay == 2 && currentGame.Player1Game2Played) ||
                                           (request.NumberOfPlay == 3 && currentGame.Player1Game3Played) ||
                                           (request.NumberOfPlay == 4 && currentGame.Player1Game4Played) ||
                                           (request.NumberOfPlay == 5 && currentGame.Player1Game5Played);
                if (isCurrentGamePlayed)
                {
                    int player1CurrentGamePoints = 0;
                    int player2CurrentGamePoints = 0;
                    switch (request.NumberOfPlay)
                    {
                    case 1:
                        player1CurrentGamePoints = currentGame.Player1Game1Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game1Points.Value;
                        break;

                    case 2:
                        player1CurrentGamePoints = currentGame.Player1Game2Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game2Points.Value;
                        break;

                    case 3:
                        player1CurrentGamePoints = currentGame.Player1Game3Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game3Points.Value;
                        break;

                    case 4:
                        player1CurrentGamePoints = currentGame.Player1Game4Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game4Points.Value;
                        break;

                    case 5:
                        player1CurrentGamePoints = currentGame.Player1Game5Points.Value;
                        player2CurrentGamePoints = currentGame.Player2Game5Points.Value;
                        break;
                    }

                    var context = GlobalHost.ConnectionManager.GetHubContext <Tasks>();
                    context.Clients.All.opponentPlayed5(currentGame.Player1, player2CurrentGamePoints, player1CurrentGamePoints);
                    PlayCardResponse response = new PlayCardResponse
                    {
                        OpponentPoints = player1CurrentGamePoints,
                        MyPoints       = player2CurrentGamePoints
                    };
                    return(Ok(response));
                }
                else
                {
                    return(Content(HttpStatusCode.BadRequest, "Cekanje na drugog igraca da odigra..."));
                }
            }
        }