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); } }
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); }
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; } }
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; }
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; } }
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>"; }
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); } } }