protected void btnSubmit_Click(object sender, EventArgs e) { var txtCount = txtCountSubmitted.Text.Trim(); var txtCode = txtProgramCode.Text.Trim(); // --------------------------------------------------------------------------------------------------- if (txtCount.Length > 0 && txtCode.Length > 0) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = "Please enter either how much you have read OR a code, but not both.<br><br>"; return; } if (txtCount.Length == 0 && txtCode.Length == 0) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = "Please enter either how much you have read OR a code.<br><br>"; return; } // --------------------------------------------------------------------------------------------------- int PID = int.Parse(lblPID.Text); int PGID = int.Parse(lblPGID.Text); var StartingPoints = PatronPoints.GetTotalPatronPoints(PID); var pa = new AwardPoints(PID); var sBadges = ""; #region Reading // --------------------------------------------------------------------------------------------------- // Logging reading ... //Badge EarnedBadge; if (txtCount.Length > 0) { var intCount = 0; if (!int.TryParse(txtCount, out intCount)) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = "How much was read must be a number."; return; } if (intCount < 0) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = "Hmmm, you must enter a positive number...<br><br>"; return; } int maxAmountForLogging = 0; int maxPointsPerDayForLogging = SRPSettings.GetSettingValue("MaxPtsDay").SafeToInt(); switch (int.Parse(rbActivityType.SelectedValue)) { case 0: maxAmountForLogging = SRPSettings.GetSettingValue("MaxBook").SafeToInt(); break; case 1: maxAmountForLogging = SRPSettings.GetSettingValue("MaxPage").SafeToInt(); break; //case 2: maxAmountForLogging = SRPSettings.GetSettingValue("MaxPar").SafeToInt(); // break; case 3: maxAmountForLogging = SRPSettings.GetSettingValue("MaxMin").SafeToInt(); break; default: maxAmountForLogging = SRPSettings.GetSettingValue("MaxMin").SafeToInt(); break; } if (intCount > maxAmountForLogging) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = string.Format("That is an awful lot of reading... unfortunately the maximum you can submit at one time is {0} {1}.<br><br>", maxAmountForLogging, ((ActivityType)int.Parse(rbActivityType.SelectedValue)).ToString()); return; } // convert pages/minutes/etc. to points var pc = new ProgramGamePointConversion(); pc.FetchByActivityId(PGID, int.Parse(rbActivityType.SelectedValue)); var points = Convert.ToInt32(intCount * pc.PointCount / pc.ActivityCount); var allPointsToday = PatronPoints.GetTotalPatronPoints(PID, DateTime.Now); if (intCount + allPointsToday > maxPointsPerDayForLogging) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = string.Format("We are sorry, you have reached the maximum amount of points you are allowed to log in a single day, regardless of how the points were earned. Please come back and and log them tomorrow.<br><br>"); return; } //// convert pages/minutes/etc. to points //var pc = new ProgramGamePointConversion(); //pc.FetchByActivityId(PGID, int.Parse(rbActivityType.SelectedValue)); //var points = Convert.ToInt32(intCount * pc.PointCount / pc.ActivityCount); sBadges = pa.AwardPointsToPatron(points, PointAwardReason.Reading, 0, (ActivityType)pc.ActivityTypeId, intCount, txtAuthor.Text.Trim(), txtTitle.Text.Trim(), Review.Text.Trim()); } #endregion #region Event Attendance // Logging event attendance if (txtCode.Length > 0) { // verify event code was not previously redeemed if (PatronPoints.HasRedeemedKeywordPoints(PID, txtCode)) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = "This code has already been redeemend for this account."; return; } // get event for that code, get the # points var ds = Event.GetEventByEventCode(pa.pgm.StartDate.ToShortDateString(), DateTime.Now.ToShortDateString(), txtCode); if (ds.Tables[0].Rows.Count == 0) { lblMessage.ForeColor = System.Drawing.Color.Red; lblMessage.Text = "This code is not valid."; return; } var EID = (int)ds.Tables[0].Rows[0]["EID"]; var evt = Event.GetEvent(EID); var points = evt.NumberPoints; //var newPBID = 0; if (evt.BadgeID != 0) { sBadges = pa.AwardPointsToPatron(points, PointAwardReason.EventAttendance, eventCode: txtCode, eventID: EID); } } #endregion var EndingPoints = PatronPoints.GetTotalPatronPoints(PID); // No need to announcve the badge award lblMessage.ForeColor = System.Drawing.Color.Green; lblMessage.Text = (EndingPoints - StartingPoints).ToInt() + @" points have been added to the account!"; txtAuthor.Text = txtTitle.Text = txtCountSubmitted.Text = Review.Text = txtProgramCode.Text = ""; btnSubmit.Visible = false; btnReSubmit.Visible = true; EntryTable.Visible = false; }
protected void btnSave_Click(object sender, EventArgs e) { var now = DateTime.Now; var onlyCheckedBoxes = true; var selBLI = 0; foreach (RepeaterItem item in rptr2.Items) { if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) { var chkRead = (CheckBox)item.FindControl("chkRead"); var PBLBID = int.Parse(((Label)item.FindControl("PBLBID")).Text); var BLBID = int.Parse(((Label)item.FindControl("BLBID")).Text); var BLID = int.Parse(((Label)item.FindControl("BLID")).Text); selBLI = BLID; var pbl = new PatronBookLists(); if (PBLBID != 0) { pbl = PatronBookLists.FetchObject(PBLBID); } pbl.BLBID = BLBID; pbl.BLID = BLID; pbl.PID = ((Patron)Session["Patron"]).PID; pbl.LastModDate = now; pbl.HasReadFlag = chkRead.Checked; if (!pbl.HasReadFlag) { onlyCheckedBoxes = false; } if (PBLBID != 0) { pbl.Update(); } else { pbl.Insert(); } } } lblMessage.Visible = true; // read the entire book list! Award points and badges if (onlyCheckedBoxes) { var bl = BookList.FetchObject(selBLI); if (PatronPoints.HasEarnedBookList(((Patron)Session["Patron"]).PID, selBLI)) { return; } if (bl.AwardBadgeID != 0 || bl.AwardPoints != 0) { var pa = new AwardPoints(((Patron)Session["Patron"]).PID); var sBadges = pa.AwardPointsToPatron(bl.AwardPoints, PointAwardReason.BookListCompletion, bookListID: bl.BLID); if (sBadges.Length > 0) { Response.Redirect("~/BadgeAward.aspx?b=" + sBadges); } } } }
public void ProcessTheWin() { var mg = DAL.Minigame.FetchObject(int.Parse(MGID.Text)); var pa = new AwardPoints(int.Parse(PID.Text)); var sBadges = pa.AwardPointsToPatron(mg.NumberPoints, PointAwardReason.MiniGameCompletion, mg.MGID); if (sBadges.Length > 0) { Response.Redirect("~/BadgeAward.aspx?b=" + sBadges); } //var mg = DAL.Minigame.FetchObject(int.Parse(MGID.Text)); //var patron = (Patron)Patron.FetchObject(int.Parse(PID.Text)); //var pgm = Programs.FetchObject(patron.ProgID); //var StartingPoints = PatronPoints.GetTotalPatronPoints(patron.PID); //var EndingPoints = StartingPoints; //var EarnedBadges = new List<Badge>(); //Badge EarnedBadge; //// 1 - log points to patron activity (mg.NumberPoints) //var now = DateTime.Now; //var pp = new PatronPoints //{ // PID = patron.PID, // NumPoints = mg.NumberPoints, // AwardDate = now, // AwardReasonCd = (int)PointAwardReason.MiniGameCompletion, // AwardReason = PatronPoints.PointAwardReasonCdToDescription(PointAwardReason.MiniGameCompletion), // BadgeAwardedFlag = false, // isBookList = false, // isEvent = false, // isGame = false, // isGameLevelActivity = true, // GameLevelActivityID = mg.MGID, // isReading = false, // LogID = 0 //}; //pp.Insert(); //if (mg.AwardedBadgeID > 0) //{ // var pbds = PatronBadges.GetAll(patron.PID); // var a = pbds.Tables[0].AsEnumerable().Where(r => r.Field<int>("BadgeID") == mg.AwardedBadgeID); // var newTable = new DataTable(); // try { newTable = a.CopyToDataTable(); } // catch { } // //DataTable newTable = a.CopyToDataTable(); // if (newTable.Rows.Count == 0) // { // var pb = new PatronBadges { BadgeID = mg.AwardedBadgeID, DateEarned = now, PID = patron.PID }; // pb.Insert(); // EarnedBadge = Badge.GetBadge(mg.AwardedBadgeID); // EarnedBadges.Add(EarnedBadge); // //if badge generates notification, then generate the notification // if (EarnedBadge.GenNotificationFlag) // { // var not = new Notifications // { // PID_To = patron.PID, // PID_From = 0, //0 == System Notification // Subject = EarnedBadge.NotificationSubject, // Body = EarnedBadge.NotificationBody, // isQuestion = false, // AddedDate = now, // LastModDate = now, // AddedUser = patron.Username, // LastModUser = "******" // }; // not.Insert(); // } // pp.BadgeAwardedFlag = true; // pp.BadgeID = mg.AwardedBadgeID; // pp.Update(); // } //} //EndingPoints = PatronPoints.GetTotalPatronPoints(patron.PID); //EarnedBadge = null; //EarnedBadge = TallyPoints(patron, pgm, StartingPoints, EndingPoints, ref EarnedBadges); //if (EarnedBadge != null) //{ // // Award the badge // var newPBID = 0; // var pb = new PatronBadges { BadgeID = EarnedBadge.BID, DateEarned = now, PID = patron.PID }; // pb.Insert(); // newPBID = pb.PBID; // //if badge generates notification, then generate the notification // if (EarnedBadge.GenNotificationFlag) // { // var not = new Notifications // { // PID_To = patron.PID, // PID_From = 0, //0 == System Notification // Subject = EarnedBadge.NotificationSubject, // Body = EarnedBadge.NotificationBody, // isQuestion = false, // AddedDate = now, // LastModDate = now, // AddedUser = patron.Username, // LastModUser = "******" // }; // not.Insert(); // } //} //if (EarnedBadges.Count > 0) //{ // //Display Badges Awards messages // var badges = EarnedBadges.Count.ToString(); // //foreach(Badge b in EarnedBadges) // //{ // // badges = badges + "|" + b.BID.ToString(); // //} // badges = EarnedBadges.Aggregate(badges, (current, b) => current + "|" + b.BID.ToString()); // //Server.Transfer("~/BadgeAward.aspx?b=" + badges); // Response.Redirect("~/BadgeAward.aspx?b=" + badges); //} }