Esempio n. 1
0
        public static int DrawWinners(int PDID, int numWinners, int additional = 0)
        {
            SqlParameter[] arrParams = new SqlParameter[3];
            arrParams[0] = new SqlParameter("@PDID", PDID);
            arrParams[1] = new SqlParameter("@NumWinners", numWinners);
            arrParams[2] = new SqlParameter("@Additional", additional);
            var ds = SqlHelper.ExecuteDataset(conn, CommandType.StoredProcedure, "app_PrizeDrawing_DrawWinners", arrParams);

            var ret = ds.Tables[0].Rows.Count;

            var pd  = PrizeDrawing.FetchObject(PDID);
            var pt  = PrizeTemplate.FetchObject(pd.TID);
            var now = DateTime.Now;

            for (var i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                int PID   = (int)ds.Tables[0].Rows[i]["PatronID"];
                int NID   = (int)ds.Tables[0].Rows[i]["NotificationID"];
                int PDWID = (int)ds.Tables[0].Rows[i]["PDWID"];

                // insert patron prize
                var pp = new PatronPrizes
                {
                    PID          = PID,
                    PrizeSource  = 0,
                    BadgeID      = 0,
                    DrawingID    = PDWID,
                    PrizeName    = pd.PrizeName,
                    RedeemedFlag = false,
                    AddedDate    = now,
                    LastModDate  = now,
                    AddedUser    = "******",
                    LastModUser  = "******"
                };
                pp.Insert();

                if (pt.SendNotificationFlag)
                {
                    // generate notification
                    var not = new Notifications
                    {
                        PID_To      = PID,
                        PID_From    = 0, //0 == System Notification
                        Subject     = pt.NotificationSubject,
                        Body        = pt.NotificationMessage,
                        isQuestion  = false,
                        AddedDate   = now,
                        LastModDate = now,
                        AddedUser   = "******",
                        LastModUser = "******"
                    };
                    not.Insert();

                    var w = PrizeDrawingWinners.FetchObject(PDWID);
                    w.NotificationID = not.NID;
                    w.Update();
                }
                else
                {
                    var w = PrizeDrawingWinners.FetchObject(PDWID);
                    w.NotificationID = -1;
                    w.Update();
                }
            }

            return(ret);
        }