public void LoadData() { var patron = (Patron)Session["Patron"]; int tp = PatronPoints.GetTotalPatronPoints(patron.PID); lblPoints.Text = tp.ToInt(); var pgm = Programs.FetchObject(patron.ProgID); if (pgm.ProgramGameID > 0) { if (ProgramGame.FetchObject(pgm.ProgramGameID) != null) { LoadNextLevelInfo(patron, pgm, tp); } } }
public void GetGameInfo(Patron patron, Programs pgm, int StartingPoints, out int level, out int points, out bool bonus) { //Tally up the points level = 0; points = 0; bonus = false; if (pgm.ProgramGameID > 0) { // only if we have a game we can earn badges by reading .... var gm = ProgramGame.FetchObject(pgm.ProgramGameID); var ds = ProgramGameLevel.GetAll(gm.PGID); var normalLevelTotalPoints = GetGameCompletionPoints(ds); var bonusLevelTotalPoints = GetGameCompletionBonusPoints(ds, gm.BonusLevelPointMultiplier); bonus = (StartingPoints > normalLevelTotalPoints); // loop thru the levels to see where we are at ... before awarding the new points var rp = StartingPoints; //remaining points if (bonus) { // if we are on the bonus, eliminate the "fully completed boards/levels) and then see what the remainder of the points is. rp = rp - normalLevelTotalPoints; level = ds.Tables[0].Rows.Count + 1; // completed all the levels for the "normal" level = level + (int)((int)rp / (int)bonusLevelTotalPoints) * (ds.Tables[0].Rows.Count + 1); rp = rp % bonusLevelTotalPoints; } for (var i = 0; i < ds.Tables[0].Rows.Count; i++) { var multiplier = (bonus ? gm.BonusLevelPointMultiplier : 1.00m); var levelPoints = Convert.ToInt32(Convert.ToInt32(ds.Tables[0].Rows[i]["PointNumber"]) * multiplier); rp = rp - levelPoints; if (rp < 0) { points = -rp; break; } level++; } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Session["Patron"] == null) { Response.Redirect("/"); } var patron = (Patron)Session["Patron"]; var pgm = Programs.FetchObject(patron.ProgID); int tp = PatronPoints.GetTotalPatronPoints(patron.PID); var gm = ProgramGame.FetchObject(pgm.ProgramGameID); var defMGID1 = 0; var defMGID2 = 0; if (gm != null) { defMGID1 = gm.Minigame1ID; defMGID2 = gm.Minigame2ID; } /* * string LevelIDs = GetGameInfo(patron, pgm, gm, tp); * * var getMinigames0 = DAL.Programs.GetProgramMinigames(LevelIDs, 0, defMGID1); * rptrx1.DataSource = getMinigames0; * rptrx1.DataBind(); * var getMinigames1 = DAL.Programs.GetProgramMinigames(LevelIDs, 1, defMGID2); * rptrx2.DataSource = getMinigames1; * rptrx2.DataBind(); */ var getMinigames0 = DAL.Minigame.GetMinigamesList(GetMGIDs(patron, pgm, gm, tp, defMGID1, 1)); rptrx1.DataSource = getMinigames0; rptrx1.DataBind(); var getMinigames1 = DAL.Minigame.GetMinigamesList(GetMGIDs(patron, pgm, gm, tp, defMGID2, 2)); rptrx2.DataSource = getMinigames1; rptrx2.DataBind(); NoAdventures.Visible = getMinigames0.Tables[0].Rows.Count == 0 && getMinigames1.Tables[0].Rows.Count == 0; } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SetPageRibbon(StandardModuleRibbons.SetupRibbon()); } //MasterPage.RequiredPermission = PERMISSIONID; MasterPage.IsSecure = true; MasterPage.PageTitle = string.Format("{0}", "Game Level Add / Edit"); if (!IsPostBack) { lblPK.Text = Request["PK"]; PGID.Text = Request["PK2"]; if (lblPK.Text.Length == 0 && PGID.Text == "") { Response.Redirect("ProgramGameLevelList.aspx"); } if (PGID.Text != "") { var o = ProgramGame.FetchObject(int.Parse(PGID.Text)); lblGameName.Text = o.GameName; } if (lblPK.Text.Length == 0) { dv.ChangeMode(DetailsViewMode.Insert); } else { dv.ChangeMode(DetailsViewMode.Edit); var o = ProgramGame.FetchObject(ProgramGameLevel.FetchObject(int.Parse(lblPK.Text)).PGID); PGID.Text = o.PGID.ToString(); lblGameName.Text = o.GameName; } Page.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { var patron = Session[SessionKey.Patron] as Patron; if (patron == null) { Response.Redirect("~"); } Programs pg = null; ProgramGame gm = null; var pp = 0; try { pg = Programs.FetchObject(patron.ProgID); gm = GetGame(patron); pp = PatronPoints.GetTotalPatronPoints(patron.PID); } catch { pg = null; gm = null; } if (pg == null || gm == null) { Response.Redirect(Server.MapPath("~/images/game_map_icon.png")); } var PID = pg.PID; var numSquares = gm.BoardWidth; var width = 800; var height = 800; var squareSize = width / numSquares; width = height = squareSize * numSquares; var backImageFile = Server.MapPath(new Logic.Game().GetGameboardPath(patron, gm.PGID)); var stampImageFile = Server.MapPath(string.Format(StampBasePath, gm.PGID)); var avatarImageFile = Server.MapPath(string.Format(AvatarBasePath, patron.AvatarID)); var newBmp = new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); System.Drawing.Image avatarImage = null; System.Drawing.Image stampImage = null; ; try { newBmp.SetResolution(72, 72); newBmp.MakeTransparent(); } catch { } var newGraphic = System.Drawing.Graphics.FromImage(newBmp); try { newGraphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; newGraphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; var backImage = System.Drawing.Image.FromFile(backImageFile); newGraphic.DrawImage(backImage, 0, 0, width, height); } catch { } try { avatarImage = System.Drawing.Image.FromFile(avatarImageFile); } catch { } try { stampImage = System.Drawing.Image.FromFile(stampImageFile); } catch { } // ---------------------------------------------- if (Request["p"] != null) { int.TryParse(Request["p"].ToString(), out pp); } // ------------------------------------------- var ds = ProgramGameLevel.GetAll(GetGame(patron).PGID); var normalLevelTotalPoints = GetGameCompletionPoints(ds); var bonusLevelTotalPoints = GetGameCompletionBonusPoints(ds, patron); // in bonus levels if we have more points accumulated than the total normal level points var bonus = (pp > normalLevelTotalPoints); var bonusPostfix = (bonus ? "Bonus" : ""); var rp = pp; //remaining points if (bonus) { // if we are on the bonus, eliminate the "fully completed boards/levels) and then see what the remainder of the points is. rp = rp - normalLevelTotalPoints; rp = rp % bonusLevelTotalPoints; } var idx = 0; // ---------------------------------------------- for (var i = 0; i < ds.Tables[0].Rows.Count; i++) { idx++; var multiplier = (bonus ? GetGame(patron).BonusLevelPointMultiplier : 1.00m); var levelPoints = Convert.ToInt32(Convert.ToInt32(ds.Tables[0].Rows[i]["PointNumber"]) * multiplier); var locX = Convert.ToInt32(ds.Tables[0].Rows[i]["LocationX" + bonusPostfix]) - 1; var locY = Convert.ToInt32(ds.Tables[0].Rows[i]["LocationY" + bonusPostfix]) - 1; rp = rp - levelPoints; if (rp < 0) { if (avatarImage != null) { newGraphic.DrawImage(avatarImage, locX * squareSize, locY * squareSize, squareSize, squareSize); } break; } else { if (stampImage != null) { newGraphic.DrawImage(stampImage, locX * squareSize, locY * squareSize, squareSize, squareSize); } } } Response.ContentType = "image/png"; EnableViewState = false; newBmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png); if (stampImage != null) { stampImage.Dispose(); } if (avatarImage != null) { avatarImage.Dispose(); } newGraphic.Dispose(); newBmp.Dispose(); Response.End(); }
protected void DvItemCommand(object sender, DetailsViewCommandEventArgs e) { string returnURL = "~/ControlRoom/Modules/Setup/BoardGameList.aspx"; string levelURL = "~/ControlRoom/Modules/Setup/ProgramGameLevelList.aspx"; if (e.CommandName.ToLower() == "back") { Response.Redirect(returnURL); } if (e.CommandName.ToLower() == "refresh") { try { odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; if (masterPage != null) { masterPage.PageMessage = SRPResources.RefreshOK; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } if (e.CommandName.ToLower() == "add" || e.CommandName.ToLower() == "addandback") { try { var obj = new ProgramGame(); obj.GameName = ((TextBox)((DetailsView)sender).FindControl("GameName")).Text; //obj.MapImage = ((TextBox)((DetailsView)sender).FindControl("MapImage")).Text; //obj.BonusMapImage = ((TextBox)((DetailsView)sender).FindControl("BonusMapImage")).Text; obj.BoardWidth = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("BoardWidth")).Text); //obj.BoardHeight = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("BoardHeight")).Text); obj.BonusLevelPointMultiplier = FormatHelper.SafeToDecimal(((TextBox)((DetailsView)sender).FindControl("BonusLevelPointMultiplier")).Text); //obj.LevelCompleteImage = ((TextBox)((DetailsView)sender).FindControl("LevelCompleteImage")).Text; obj.AddedDate = DateTime.Now; obj.AddedUser = ((SRPUser)Session[SessionData.UserProfile.ToString()]).Username; //"N/A"; // Get from session obj.LastModDate = obj.AddedDate; obj.LastModUser = obj.AddedUser; if (obj.IsValid(BusinessRulesValidationMode.INSERT)) { obj.Insert(); if (e.CommandName.ToLower() == "addandback") { Response.Redirect(returnURL); } lblPK.Text = obj.PGID.ToString(); odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = SRPResources.AddedOK; } else { var masterPage = (IControlRoomMaster)Master; string message = String.Format(SRPResources.ApplicationError1, "<ul>"); foreach (BusinessRulesValidationMessage m in obj.ErrorCodes) { message = string.Format(String.Format("{0}<li>{{0}}</li>", message), m.ErrorMessage); } message = string.Format("{0}</ul>", message); masterPage.PageError = message; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } if (e.CommandName.ToLower() == "levels") { Response.Redirect(levelURL + "?PGID=" + ((DetailsView)sender).Rows[0].Cells[1].Text); } if (e.CommandName.ToLower() == "save" || e.CommandName.ToLower() == "saveandback") { try { var obj = new ProgramGame(); int pk = int.Parse(((DetailsView)sender).Rows[0].Cells[1].Text); obj.Fetch(pk); obj.GameName = ((TextBox)((DetailsView)sender).FindControl("GameName")).Text; //obj.MapImage = ((TextBox)((DetailsView)sender).FindControl("MapImage")).Text; //obj.BonusMapImage = ((TextBox)((DetailsView)sender).FindControl("BonusMapImage")).Text; obj.BoardWidth = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("BoardWidth")).Text); //obj.BoardHeight = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("BoardHeight")).Text); obj.BonusLevelPointMultiplier = FormatHelper.SafeToDecimal(((TextBox)((DetailsView)sender).FindControl("BonusLevelPointMultiplier")).Text); //obj.LevelCompleteImage = ((TextBox)((DetailsView)sender).FindControl("LevelCompleteImage")).Text; obj.LastModDate = DateTime.Now; obj.LastModUser = ((SRPUser)Session[SessionData.UserProfile.ToString()]).Username; //"N/A"; // Get from session if (obj.IsValid(BusinessRulesValidationMode.UPDATE)) { obj.Update(); if (e.CommandName.ToLower() == "saveandback") { Response.Redirect(returnURL); } odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = SRPResources.SaveOK; } else { var masterPage = (IControlRoomMaster)Master; string message = String.Format(SRPResources.ApplicationError1, "<ul>"); foreach (BusinessRulesValidationMessage m in obj.ErrorCodes) { message = string.Format(String.Format("{0}<li>{{0}}</li>", message), m.ErrorMessage); } message = string.Format("{0}</ul>", message); masterPage.PageError = message; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } }
protected void Page_Load(object sender, EventArgs e) { var pg = new Programs(); var gm = new ProgramGame(); var pp = 0; try { pg = Programs.FetchObject(int.Parse(Session["PatronProgramID"].ToString())); gm = ProgramGame.FetchObject(pg.ProgramGameID); pp = PatronPoints.GetTotalPatronPoints(((Patron)Session["Patron"]).PID); } catch { Response.Redirect("/images/game_map_icon.png"); } var PID = pg.PID; var numSquares = gm.BoardWidth; var width = 800; var height = 800; //var AID = 5; var squareSize = width / numSquares; width = height = squareSize * numSquares; var backImageFile = Server.MapPath(GameBoardImage()); var stampImageFile = Server.MapPath(GameBoardStamp); var avatarImageFile = Server.MapPath(GameBoardAvatarStamp); var newBmp = new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); System.Drawing.Image avatarImage = null; System.Drawing.Image stampImage = null;; try { newBmp.SetResolution(72, 72); newBmp.MakeTransparent(); }catch {} var newGraphic = System.Drawing.Graphics.FromImage(newBmp); try { newGraphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; newGraphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; var backImage = System.Drawing.Image.FromFile(backImageFile); newGraphic.DrawImage(backImage, 0, 0, width, height); } catch { } try { avatarImage = System.Drawing.Image.FromFile(avatarImageFile); } catch { } try { stampImage = System.Drawing.Image.FromFile(stampImageFile); } catch { } // ---------------------------------------------- if (Request["p"] != null) { int.TryParse(Request["p"].ToString(), out pp); } // ------------------------------------------- var ds = ProgramGameLevel.GetAll(GetGame().PGID); var normalLevelTotalPoints = GetGameCompletionPoints(ds); var bonusLevelTotalPoints = GetGameCompletionBonusPoints(ds); // in bonus levels if we have more points accumulated than the total normal level points var bonus = (pp > normalLevelTotalPoints); var rp = pp; //remaining points if (bonus) { // if we are on the bonus, eliminate the "fully completed boards/levels) and then see what the remainder of the points is. rp = rp - normalLevelTotalPoints; rp = rp % bonusLevelTotalPoints; } var idx = 0; // ---------------------------------------------- for (var i = 0; i < ds.Tables[0].Rows.Count; i++) { idx++; var multiplier = (bonus ? GetGame().BonusLevelPointMultiplier : 1.00m); var levelPoints = Convert.ToInt32(Convert.ToInt32(ds.Tables[0].Rows[i]["PointNumber"]) * multiplier); //var levelTd = (Convert.ToInt32(ds.Tables[0].Rows[i]["LocationY"]) - 1) * GameBoardWidth + // Convert.ToInt32(ds.Tables[0].Rows[i]["LocationX"]); var locX = Convert.ToInt32(ds.Tables[0].Rows[i]["LocationX"]) - 1; var locY = Convert.ToInt32(ds.Tables[0].Rows[i]["LocationY"]) - 1; rp = rp - levelPoints; if (rp < 0) { //ret = string.Format("{0}\r\n$(\"#Td{1}\").html(\"<img src='{2}' class='BoardSquareImg'/>\");", ret, levelTd, GameBoardAvatarStamp); if (avatarImage != null) { newGraphic.DrawImage(avatarImage, locX * squareSize, locY * squareSize, squareSize, squareSize); } break; } else { //ret = string.Format("{0}\r\n$(\"#Td{1}\").html(\"<img src='{2}' class='BoardSquareImg'/>\");", ret, levelTd, GameBoardStamp); if (stampImage != null) { newGraphic.DrawImage(stampImage, locX * squareSize, locY * squareSize, squareSize, squareSize); } } } Response.ContentType = "image/png"; //Response.AppendHeader("Content-Disposition", "attachment; filename=GameLevelStatsReportResults.xlsx"); EnableViewState = false; newBmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png); if (stampImage != null) { stampImage.Dispose(); } if (avatarImage != null) { avatarImage.Dispose(); } newGraphic.Dispose(); newBmp.Dispose(); Response.End(); }
public Badge TallyPoints(Patron patron, Programs pgm, int StartingPoints, int EndingPoints, ref List <Badge> EarnedBadges) { Badge b = null; //Tally up the points and figure out if we need to award a badge. if (pgm.ProgramGameID > 0) { // only if we have a game we can earn badges by reading .... var gm = ProgramGame.FetchObject(pgm.ProgramGameID); var ds = ProgramGameLevel.GetAll(gm.PGID); var normalLevelTotalPoints = GetGameCompletionPoints(ds); var bonusLevelTotalPoints = GetGameCompletionBonusPoints(ds, gm.BonusLevelPointMultiplier); var bonus = (StartingPoints > normalLevelTotalPoints); var bonusPostfix = (bonus ? "Bonus" : ""); int BeforeLevel = 0, AfterLevel = 0; // loop thru the levels to see where we are at ... before awarding the new points var rp = StartingPoints; //remaining points if (bonus) { // if we are on the bonus, eliminate the "fully completed boards/levels) and then see what the remainder of the points is. rp = rp - normalLevelTotalPoints; rp = rp % bonusLevelTotalPoints; } for (var i = 0; i < ds.Tables[0].Rows.Count; i++) { var multiplier = (bonus ? gm.BonusLevelPointMultiplier : 1.00m); var levelPoints = Convert.ToInt32(Convert.ToInt32(ds.Tables[0].Rows[i]["PointNumber"]) * multiplier); rp = rp - levelPoints; if (rp < 0) { BeforeLevel = i; break; } } // loop thru the levels to see where we are at ... AFTER awarding the new points rp = EndingPoints; //remaining points if (bonus) { // if we are on the bonus, eliminate the "fully completed boards/levels) and then see what the remainder of the points is. rp = rp - normalLevelTotalPoints; rp = rp % bonusLevelTotalPoints; } for (var i = 0; i < ds.Tables[0].Rows.Count; i++) { var multiplier = (bonus ? gm.BonusLevelPointMultiplier : 1.00m); var levelPoints = Convert.ToInt32(Convert.ToInt32(ds.Tables[0].Rows[i]["PointNumber"]) * multiplier); rp = rp - levelPoints; AfterLevel = i; if (rp < 0) { break; } else { if (!((i + 1) < ds.Tables[0].Rows.Count)) { AfterLevel = (i + 1); } } } if (BeforeLevel != AfterLevel) { // completed the "beforeLevel" and moved up to the "AfterLevel" , so check if we need to award a badge for (var i = BeforeLevel; i < AfterLevel; i++) { var badgeToAward = Convert.ToInt32(ds.Tables[0].Rows[i]["AwardBadgeID" + bonusPostfix]); if (badgeToAward > 0) { b = Badge.GetBadge(badgeToAward); EarnedBadges.Add(b); } } } } return(b); }