コード例 #1
0
ファイル: ConfirmBid.ascx.cs プロジェクト: bsimser/spauction
        protected void Page_Load(object sender, EventArgs e)
        {
            var config = SPContext.Current.Web.Lists[Constants.ConfigListName].Items[0];

            AuctionTitle.Text = config["Title"].ToString();

            var endDate = DateTime.Parse(config["EndDate"].ToString());

            if (TimeHelper.AuctionHasEnded(endDate))
            {
                AuctionEndedPanel.Visible = true;
                ConfirmBidPanel.Visible   = false;
                HomeLink.NavigateUrl      = Page.Request.Path;
            }
            else
            {
                AuctionEndedPanel.Visible = false;
                ConfirmBidPanel.Visible   = true;

                if (Page.Request.QueryString["ItemId"] == null)
                {
                    return;
                }
                if (Page.Request.QueryString["bidAmount"] == null)
                {
                    return;
                }

                _itemId    = Convert.ToInt32(Page.Request.QueryString["ItemId"]);
                _bidAmount = Convert.ToDouble(Page.Request.QueryString["BidAmount"]);

                var web  = SPContext.Current.Web;
                var list = web.Lists[Constants.ItemsListName];
                var item = list.GetItemById(_itemId);

                if (item["Bid"] == null)
                {
                    var bid = Convert.ToDouble(item["StartingBid"].ToString());
                    CurrentBid.Text = bid.ToString("C");
                }
                else
                {
                    var bid = Convert.ToDouble(item["Bid"].ToString());
                    CurrentBid.Text = bid.ToString("C");
                }

                Title.Text             = item.Title;
                YourBid.Text           = _bidAmount.ToString("C");
                CancelLink.NavigateUrl = string.Format("{0}?uicontrol=ItemDetails&ItemId={1}", Page.Request.Path, _itemId);
            }
        }
コード例 #2
0
        void CloseLink_Click(object sender, EventArgs e)
        {
            var configList = SPContext.Current.Web.Lists[Constants.ConfigListName];

            if (configList == null)
            {
                return;
            }
            if (configList.ItemCount == 0)
            {
                return;
            }
            var config  = configList.Items[0];
            var endDate = DateTime.Parse(config["EndDate"].ToString());

            if (!TimeHelper.AuctionHasEnded(endDate))
            {
                return;
            }

            var auctionEndedTopBidderMail = config["AuctionEndedTopBidder"].ToString();
            var itemList = SPContext.Current.Web.Lists[Constants.ItemsListName];
            var items    = itemList.Items;

            foreach (var item in items.Cast <SPListItem>().Where(item => item["Bid"] != null))
            {
                item["IsSold"] = true;
                item.Update();

                var bidderColumn = (SPFieldUser)item.Fields.GetField("Bidder");
                var bidder       = (SPFieldUserValue)bidderColumn.GetFieldValue(item["Bidder"].ToString());
                var htmlBody     = string.Format(auctionEndedTopBidderMail,
                                                 bidder.User.Name,
                                                 item["Title"],
                                                 config["Title"],
                                                 string.Format("{0}?uicontrol=ItemDetails&ItemId={1}", UrlHelper.GetUrl(Page.Request.Url), item.ID),
                                                 SPContext.Current.Web.Url,
                                                 config["PickupInstructions"]);
                SPUtility.SendEmail(SPContext.Current.Web, true, false, bidder.User.Email, "Auction has ended and you're the top bidder", htmlBody);
            }

            var genericUserAuctionEndedEmail = config["GenericUserAuctionEndedEmail"].ToString();
            var adminBody = string.Format(genericUserAuctionEndedEmail,
                                          config["Title"],
                                          string.Format("{0}?uicontrol=SalesSummary", UrlHelper.GetUrl(Page.Request.Url)),
                                          SPContext.Current.Web.Url);

            SPUtility.SendEmail(SPContext.Current.Web, true, false, SPContext.Current.Web.CurrentUser.Email, "Your auction has ended", adminBody);
        }
コード例 #3
0
        private void UpdateAddNewItemLinks()
        {
            var list    = SPContext.Current.Web.Lists[Constants.ConfigListName].Items[0];
            var endDate = DateTime.Parse(list["EndDate"].ToString());

            if (TimeHelper.AuctionHasEnded(endDate))
            {
                AddNewItemPanelTop.Visible    = false;
                AddNewItemPanelBottom.Visible = false;
            }
            else
            {
                AddNewItemPanelTop.Visible    = true;
                AddNewItemPanelBottom.Visible = true;
            }
        }
コード例 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var configList = SPContext.Current.Web.Lists[Constants.ConfigListName];

            if (configList == null)
            {
                return;
            }
            if (configList.ItemCount == 0)
            {
                return;
            }
            var config = configList.Items[0];

            AuctionTitle.Text            = config["Title"].ToString();
            StartDateTime.Text           = config["StartDate"].ToString();
            EndDateTime.Text             = config["EndDate"].ToString();
            Description.Text             = config["Description"].ToString();
            PickupInstructions.Text      = config["PickupInstructions"] == null ? "None specified" : config["PickupInstructions"].ToString();
            HomeLink.NavigateUrl         = Page.Request.Path;
            SalesSummaryLink.NavigateUrl = string.Format("{0}?uicontrol=SalesSummary", Page.Request.Path);
            AmountRaised.Text            = GetAmountRaised();

            var endDate = DateTime.Parse(config["EndDate"].ToString());

            if (TimeHelper.AuctionHasEnded(endDate))
            {
                CloseLink.Visible = true;
                CloseLink.Click  += CloseLink_Click;
            }
            else
            {
                CloseLink.Visible = false;
            }

            ResetItems.Click   += ResetItems_Click;
            ResetAuction.Click += ResetAuction_Click;
        }
コード例 #5
0
ファイル: ConfirmBid.ascx.cs プロジェクト: bsimser/spauction
        protected void OnBidClick(object sender, EventArgs e)
        {
            try
            {
                var config  = SPContext.Current.Web.Lists[Constants.ConfigListName].Items[0];
                var endDate = DateTime.Parse(config["EndDate"].ToString());
                if (TimeHelper.AuctionHasEnded(endDate))
                {
                    AuctionEndedPanel.Visible = true;
                    HomeLink.NavigateUrl      = Page.Request.Path;
                }
                else
                {
                    AuctionEndedPanel.Visible = false;

                    var bidder = SPContext.Current.Web.CurrentUser;

                    RunAsAdmin.Run((site, web) =>
                    {
                        var itemList = web.Lists[Constants.ItemsListName];
                        var item     = itemList.GetItemById(_itemId);
                        NotifyOldBidder(web, item);
                        UpdateCurrentBidPrice(item);
                        IncrementBidCount(item);
                        AddBidder(web, item, bidder);
                        NotifyBidder(web, item, bidder);
                        item.Update();
                    });

                    Page.Response.Redirect(string.Format("{0}?uicontrol=ItemDetails&ItemId={1}", Page.Request.Path, _itemId));
                }
            }
            catch
            {
                throw;
            }
        }
コード例 #6
0
        private void UpdateAuctionEndsLabel()
        {
            var list      = SPContext.Current.Web.Lists[Constants.ConfigListName].Items[0];
            var endDate   = DateTime.Parse(list["EndDate"].ToString());
            var startDate = DateTime.Parse(list["StartDate"].ToString());
            var timeLeft  = TimeHelper.GetTimeLeft(endDate);

            AuctionEnds.Text = "<div class=\"auction-time\">";

            if (!TimeHelper.AuctionHasStarted(startDate) && !TimeHelper.AuctionHasEnded(endDate))
            {
                AuctionEnds.Text += string.Format("Auction Starts: <strong>{0}</strong>", startDate);
            }
            else if (TimeHelper.AuctionHasEnded(endDate))
            {
                AuctionEnds.Text += string.Format("Auction Ended: <strong>{0}</strong>", endDate);
            }
            else
            {
                AuctionEnds.Text += string.Format("Auction Ends: <strong>{0}</strong>", endDate);
            }

            AuctionEnds.Text += "</div>";
        }
コード例 #7
0
ファイル: ItemDetails.ascx.cs プロジェクト: bsimser/spauction
        private void RenderBidValues(SPListItem item, DateTime startDate, DateTime endDate)
        {
            YouWonPanel.Visible        = false;
            HighestBidderPanel.Visible = false;

            if (TimeHelper.AuctionHasEnded(endDate))
            {
                StartPanel.Visible                   = false;
                StartingBidPanel.Visible             = false;
                EndLabelText.Text                    = "Ended:";
                EndLabelValue.Text                   = endDate.ToString();
                CurrentBidPanel.Visible              = false;
                PlaceBidPanel.Visible                = false;
                SPSecurityTrimmedControlName.Visible = false;

                if (item["Bidder"] != null)
                {
                    var bidderColumn     = (SPFieldUser)item.Fields.GetField("Bidder");
                    var bidderFieldValue = (SPFieldUserValue)bidderColumn.GetFieldValue(item["Bidder"].ToString());

                    if (bidderFieldValue.User.LoginName.Equals(SPContext.Current.Web.CurrentUser.LoginName))
                    {
                        YouWonPanel.Visible = true;
                    }

                    StartingBidPanel.Visible = true;
                    BidSellLabel.Text        = "Selling Price:";
                    BidSellValue.Text        = string.Format("{0:c}", item["Bid"]);
                }
            }
            else
            {
                if (TimeHelper.AuctionHasStarted(startDate))
                {
                    PlaceBidPanel.Visible = true;
                }
                else
                {
                    PlaceBidPanel.Visible = false;
                }

                StartPanel.Visible = true;

                StartingBidPanel.Visible = true;
                BidSellLabel.Text        = "Starting Bid:";
                BidSellValue.Text        = string.Format("{0:c}", item["StartingBid"]);

                var bidCountField = item["NumberOfBids"];
                if (bidCountField != null)
                {
                    var bids = Convert.ToInt32(bidCountField.ToString());
                    if (bids > 0)
                    {
                        StartingBidPanel.Visible = false;
                    }
                }

                EndLabelText.Text  = "Ends:";
                EndLabelValue.Text = endDate.ToString();

                if (item["Bidder"] != null)
                {
                    var bidderColumn     = (SPFieldUser)item.Fields.GetField("Bidder");
                    var bidderFieldValue = (SPFieldUserValue)bidderColumn.GetFieldValue(item["Bidder"].ToString());

                    // Is the current user the current bidder?
                    if (bidderFieldValue.User.LoginName.Equals(SPContext.Current.Web.CurrentUser.LoginName))
                    {
                        HighestBidderPanel.Visible = true;
                        PlaceBidPanel.Visible      = false;
                    }
                    else
                    {
                        HighestBidderPanel.Visible = false;
                        PlaceBidPanel.Visible      = true;
                    }
                }

                if (item["Bid"] != null)
                {
                    _currentBid = Convert.ToDouble(item["Bid"].ToString());
                    var bidIncrement = Convert.ToDouble(item["MinimumBidIncrement"].ToString());
                    MinimumBidLabel.Text    = string.Format("(Enter {0:c} or More to Bid)", _currentBid + bidIncrement);
                    CurrentBidPanel.Visible = true;
                    CurrentBidValue.Text    = string.Format("{0:c}", _currentBid);
                }
                else
                {
                    CurrentBidPanel.Visible = false;
                    var minBid       = Convert.ToDouble(item["StartingBid"].ToString());
                    var bidIncrement = Convert.ToDouble(item["MinimumBidIncrement"].ToString());
                    MinimumBidLabel.Text = string.Format("(Enter {0:c} or More to Bid)", minBid + bidIncrement);
                }
            }
        }