Пример #1
0
        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;
        }
Пример #2
0
        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);

            //}
        }