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)); } }
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...")); } } }