protected void Page_Load(object sender, EventArgs e) { MethodBase lmth = MethodBase.GetCurrentMethod(); string lsRoutineName = lmth.DeclaringType + "." + lmth.Name; Classes.cUser User = new Classes.cUser(Session["Username"].ToString(), "PasswordNotNeeded", Session.SessionID); Classes.cCharacter cChar = new Classes.cCharacter(); cChar.LoadCharacterBySkillSetID(User.LastLoggedInSkillSetID); lblCharName.Text = cChar.AKA + " ( " + cChar.SkillSetName + " ) - " + cChar.CampaignName; lblAKA.Text = cChar.AKA; lblFullName.Text = cChar.FirstName; if (cChar.MiddleName.Trim().Length > 0) { lblFullName.Text += " " + cChar.MiddleName; } if (cChar.LastName.Trim().Length > 0) { lblFullName.Text += " " + cChar.LastName; } lblFullName.Text.Trim(); lblRace.Text = cChar.Race.FullRaceName; lblOrigin.Text = cChar.WhereFrom; lblPlayerName.Text = ""; DataTable dtCharacterSkills = new DataTable(); SortedList sParams = new SortedList(); sParams.Add("@SkillSetID", cChar.SkillSetID); DataSet dsCharInfo = Classes.cUtilities.LoadDataSet("uspGetCharCardSkills", sParams, "LARPortal", Session["UserName"].ToString(), lsRoutineName); // dtCharacterSkills = Classes.cUtilities.LoadDataTable("uspGetCharCardSkills", sParams, "LARPortal", Session["UserName"].ToString(), lsRoutineName); dtCharacterSkills = dsCharInfo.Tables[0]; DataTable dtSkillCosts = dsCharInfo.Tables[1]; if (dtCharacterSkills.Columns["FullDescription"] == null) { dtCharacterSkills.Columns.Add(new DataColumn("FullDescription", typeof(string))); } Classes.cSkillPool skDefault = cChar.SkillPools.Find(x => x.DefaultPool == true); object oCPSpent; double dCPSpent; // oCPSpent = dtCharacterSkills.Compute("sum(cpcostpaid)", "CampaignSkillPoolID = " + skDefault.PoolID.ToString()); oCPSpent = dtSkillCosts.Compute("sum(cpcostpaid)", "CampaignSkillPoolID = " + skDefault.PoolID.ToString()); double.TryParse(oCPSpent.ToString(), out dCPSpent); TableRow dTotalRow = new TableRow(); TableCell dcCell = new TableCell(); dcCell.CssClass = "TableLabel"; dcCell.Text = "Total CP:"; dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.Text = cChar.TotalCP.ToString("0.00"); dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.CssClass = "TableLabel"; dcCell.Text = "Total Spent:"; dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.Text = dCPSpent.ToString("0.00"); dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.CssClass = "TableLabel"; dcCell.Text = "Total Avail:"; dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.Text = (cChar.TotalCP - dCPSpent).ToString("0.00"); dTotalRow.Cells.Add(dcCell); tblCharInfo.Rows.Add(dTotalRow); List <Classes.cSkillPool> skNotDefault = cChar.SkillPools.FindAll(x => x.DefaultPool == false).OrderBy(x => x.PoolDescription).ToList(); foreach (Classes.cSkillPool PoolNotDefault in skNotDefault) { // oCPSpent = dtCharacterSkills.Compute("sum(cpcostpaid)", "CampaignSkillPoolID = " + PoolNotDefault.PoolID.ToString()); oCPSpent = dtSkillCosts.Compute("sum(cpcostpaid)", "CampaignSkillPoolID = " + PoolNotDefault.PoolID.ToString()); double.TryParse(oCPSpent.ToString(), out dCPSpent); double TotalPoints = cChar.SkillPools.Find(x => x.PoolID == PoolNotDefault.PoolID).TotalPoints; dTotalRow = new TableRow(); dTotalRow.ForeColor = System.Drawing.Color.FromName(PoolNotDefault.PoolDisplayColor); dcCell = new TableCell(); dcCell.CssClass = "TableLabel"; dcCell.Text = PoolNotDefault.PoolDescription + " Points:"; dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.Text = TotalPoints.ToString("0.00"); dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.CssClass = "TableLabel"; dcCell.Text = "Total Spent:"; dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.Text = dCPSpent.ToString("0.00"); dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.CssClass = "TableLabel"; dcCell.Text = "Total Avail:"; dTotalRow.Cells.Add(dcCell); dcCell = new TableCell(); dcCell.Text = (TotalPoints - dCPSpent).ToString("0.00"); dTotalRow.Cells.Add(dcCell); tblCharInfo.Rows.Add(dTotalRow); } double CPCost; double CPSpent = 0.0; if (dtCharacterSkills.Columns["CostString"] is null) { dtCharacterSkills.Columns.Add("CostString", typeof(string)); } foreach (DataRow dSkillRow in dtCharacterSkills.Rows) { int iSkillID; if (int.TryParse(dSkillRow["CharacterSkillID"].ToString(), out iSkillID)) { Classes.cCharacterSkill cCharacterSkill = cChar.CharacterSkills.Where(x => x.CharacterSkillID == iSkillID).FirstOrDefault(); dSkillRow["CostString"] = cCharacterSkill.CostString(); } if (double.TryParse(dSkillRow["CPCostPaid"].ToString(), out CPCost)) { CPSpent += CPCost; } string FullDesc = ""; bool bDisplay; if (dSkillRow["AddInfoValue"].ToString().Length > 0) { FullDesc += dSkillRow["AddInfoValue"].ToString() + "; "; } if (bool.TryParse(dSkillRow["CardDisplayDescription"].ToString(), out bDisplay)) { if (bDisplay) { if (dSkillRow["SkillCardDescription"].ToString().Trim().Length > 0) { FullDesc += dSkillRow["SkillCardDescription"].ToString().Trim() + "; "; } } } if (dSkillRow["PlayerDescription"].ToString().Trim().Length > 0) { FullDesc += dSkillRow["PlayerDescription"].ToString().Trim() + "; "; } if (bool.TryParse(dSkillRow["CardDisplayIncant"].ToString(), out bDisplay)) { if (bDisplay) { if (dSkillRow["SkillIncant"].ToString().Trim().Length > 0) { FullDesc += "<i>" + dSkillRow["SkillIncant"].ToString().Trim() + "</i>; "; } } } if (dSkillRow["PlayerIncant"].ToString().Trim().Length > 0) { FullDesc += "<b><i>" + dSkillRow["PlayerIncant"].ToString().Trim() + "</b></i>"; } FullDesc = FullDesc.Trim(); if (FullDesc.EndsWith(";")) { FullDesc = FullDesc.Substring(0, FullDesc.Length - 1); } dSkillRow["FullDescription"] = FullDesc; } foreach (Classes.cCharacterSkill Cost in cChar.CharacterSkills) { string t = Cost.CostString(); } Dictionary <string, string> NonCost = new Dictionary <string, string>(); foreach (Classes.cDescriptor Desc in cChar.Descriptors) { if (NonCost.ContainsKey(Desc.CharacterDescriptor)) { NonCost[Desc.CharacterDescriptor] += Desc.DescriptorValue + ", "; } else { NonCost.Add(Desc.CharacterDescriptor, Desc.DescriptorValue + ", "); } } foreach (string KeyValue in NonCost.Keys.ToList()) { if (NonCost[KeyValue].EndsWith(", ")) { NonCost[KeyValue] = NonCost[KeyValue].Substring(0, NonCost[KeyValue].Length - 2); } } gvSkills.DataSource = dtCharacterSkills; gvSkills.DataBind(); gvNonCost.DataSource = NonCost; gvNonCost.DataBind(); lblPlayerName.Text = User.FirstName + " " + User.MiddleName + " " + User.LastName; }