public IActionResult UpdateAuction(int auctionId) { DetailsAuctionViewModel currentAuction = _businessService.GetAuctionById(auctionId); UpdateAuctionViewModel viewModel = _businessService.SetUpdateViewModel(currentAuction); return(View(viewModel)); }
//TODO Kolla hur man inte först behöver hämta alla //public IEnumerable<SearchResultAuctionViewModel> GetAuctionsSorted(string sortParam) //{ // //IEnumerable<SearchResultAuctionViewModel> searchResult = GetSearchResult() // //IEnumerable<TestAuctionViewModel> allAuctions = SetGeneralAuctionViewModelList(allAuctionsDb); // //if (sortParam == "endDate") // //{ // // allAuctions = allAuctions.OrderBy(x => x.GeneralAuctionViewModel.EndDateString); // //} // //else if (sortParam == "startPrice") // //{ // // allAuctions = allAuctions.OrderBy(x => x.GeneralAuctionViewModel.StartPrice); // //} // //return allAuctions; // //IEnumerable<AuctionModel> allAuctionsDb = _auctionRepository.GetAllAuctions(); // //IEnumerable<TestAuctionViewModel> allAuctions = SetGeneralAuctionViewModelList(allAuctionsDb); // //if (sortParam == "endDate") // //{ // // allAuctions = allAuctions.OrderBy(x => x.GeneralAuctionViewModel.EndDateString); // //} // //else if (sortParam == "startPrice") // //{ // // allAuctions = allAuctions.OrderBy(x => x.GeneralAuctionViewModel.StartPrice); // //} // //return allAuctions; //} public DetailsAuctionViewModel GetAuctionById(int auctionId) { AuctionModel currentAuctionDb = _auctionRepository.GetAuctionById(auctionId); DetailsAuctionViewModel currentAuction = SetDetailsAuctionViewModel(currentAuctionDb); return(currentAuction); }
public UpdateAuctionViewModel SetUpdateViewModel(DetailsAuctionViewModel currentAuction) { UpdateAuctionViewModel viewModel = new UpdateAuctionViewModel { Id = currentAuction.Id, Title = currentAuction.Title, Description = currentAuction.Description, StartPrice = currentAuction.StartPrice }; return(viewModel); }
//[Authorize(Roles = "User")] public dynamic Bid(string id, long?offer) { logger.InfoFormat("Bid: {0}", JsonConvert.SerializeObject(new { user = User.Identity.GetUserName(), id, offer })); if (Request.IsAuthenticated && User.IsInRole("User")) { DetailsAuctionViewModel auction = null; if (offer != null) { if (data.MakeBid(id, offer, User.Identity.GetUserId())) { auction = data.GetAuctionDetailsById(id, 1); if (auction != null) { return(JsonConvert.SerializeObject(new { id, bidder = auction.LastBidder, currentPrice = auction.CurrentPrice, currency = auction.Currency, tokens = auction.CurrentNumberOfTokens, success = true, message = "You made a bid", lastBid = auction.Bids[0] })); } } } return(JsonConvert.SerializeObject(new { id, success = false, message = "Error has occured" })); } else { return(JsonConvert.SerializeObject(new { id, success = false, message = "You have to log in" })); } }
public AuctionModel MakeAuctionApiReady(DetailsAuctionViewModel viewModel) { AuctionModel model = new AuctionModel { AuktionID = viewModel.Id.ToString(), Titel = viewModel.Title, Beskrivning = viewModel.Description, StartDatum = viewModel.StartDateString, SlutDatum = viewModel.EndDateString, Gruppkod = _apiKey, Utropspris = viewModel.StartPrice.ToString(), SkapadAv = _userService.GetCurrentUserName() }; return(model); }
public DetailsAuctionViewModel UpdateAuction(UpdateAuctionViewModel newValues, DetailsAuctionViewModel oldValues) { DetailsAuctionViewModel viewModel = new DetailsAuctionViewModel { Id = oldValues.Id, Title = newValues.Title, Description = newValues.Description, StartDateString = oldValues.StartDateString, EndDateString = oldValues.EndDateString, GroupCode = _apiKey, StartPrice = newValues.StartPrice, CreatedBy = _userService.GetCurrentUserName() }; return(viewModel); }
//TODO Kolla hur den här valideringen kan göras på klienten public bool GetBidIsValid(decimal newBid, int auctionId) { DetailsAuctionViewModel currentAuction = GetAuctionById(auctionId); decimal currentHighestBid = GetHighestBidForAuction(auctionId); decimal startPrice = currentAuction.StartPrice; if ((newBid > currentHighestBid) && (newBid > startPrice)) { return(true); } else { return(false); } }
//TODO Fixa GetAuctionIsOpen public DetailsAuctionViewModel SetDetailsAuctionViewModel(AuctionModel model) { DetailsAuctionViewModel viewModel = new DetailsAuctionViewModel { Id = Int32.Parse(model.AuktionID), Title = model.Titel, Description = model.Beskrivning, StartDateString = model.StartDatum, EndDateString = model.SlutDatum, StartPrice = decimal.Parse(model.Utropspris), CreatedBy = model.SkapadAv, AllBids = GetBidsForAuction(Int32.Parse(model.AuktionID)) //AuctionIsOpen = GetAuctionIsOpen(Int32.Parse(model.AuktionID)) }; return(viewModel); }
public bool GetAuctionIsOpen(int auctionId) { DetailsAuctionViewModel currentAuction = GetAuctionById(auctionId); String todayString = DateTime.Now.ToString("yyyy-MM-ddTHH:mm"); String endDateString = currentAuction.EndDateString; DateTime today = DateTime.Parse(todayString); DateTime endDate = DateTime.Parse(endDateString); if (endDate > today) { return(true); } else { return(false); } }
public IActionResult UpdateAuction(UpdateAuctionViewModel input) { if (ModelState.IsValid) { DetailsAuctionViewModel currentAuction = _businessService.GetAuctionById(input.Id); DetailsAuctionViewModel viewModel = _businessService.UpdateAuction(input, currentAuction); AuctionModel model = _businessService.MakeAuctionApiReady(viewModel); HttpResponseMessage response = _businessService.UpdateAuction(model); if (response.IsSuccessStatusCode == true) { return(RedirectToAction("ViewAuctionDetails", "Auction", new { auctionId = viewModel.Id, message = "Auction was successfully updated" })); } return(RedirectToAction("ViewAuctionDetails", "Auction", new { auctionId = viewModel.Id, message = "Auction has not been updated" })); } return(View(input)); }
public ActionResult Details(int Id) { DetailsAuctionViewModel model = new DetailsAuctionViewModel(); model.PageTitle = "Details"; model.PageDescription = "Auction details"; model.Auction = AuctionsService.Instance.GetAuctionById(Id); model.EntityId = (int)EntitiesEnum.Auction; model.BidsAmount = model.Auction.ActualAmount + model.Auction.Bids.Sum(x => x.BidAmount); var newBidder = model.Auction.Bids.OrderByDescending(x => x.Timestamp).FirstOrDefault(); model.LatestBidder = newBidder != null ? newBidder.User: null; model.Comment = CommentsService.Instance.GetComments(model.EntityId, Id); model.RatingStar = CommentsService.Instance.RatingAverage(model.EntityId, Id); return(View(model)); }
public IActionResult ViewAuctionDetails(int auctionId) { DetailsAuctionViewModel currentAuction = _businessService.GetAuctionById(auctionId); return(View(currentAuction)); }
public DetailsAuctionViewModel GetAuctionDetailsById(string id, int?page) { logger.InfoFormat("GetAuctionDetailsById: {0} ", JsonConvert.SerializeObject(new { id, page })); try { using (AuctionDB db = new AuctionDB()) { CloseAuctions(); Auction auction = db.Auctions.Include(a => a.Bids).Where(a => a.Id.ToString().Equals(id)).SingleOrDefault(); if (auction == null) { logger.ErrorFormat("GetAuctionDetailsById: auction {0} is null", JsonConvert.SerializeObject(new { auction })); return(null); } else { //var span = (auction.ClosingTime - DateTime.UtcNow) ?? new TimeSpan(); var dv = GetDetailsDefaultValues(); if (dv == null) { logger.ErrorFormat("GetAuctionDetailsById: default values {0} is null", JsonConvert.SerializeObject(new { dv })); return(null); } var token = auction.Bids.Count() == 0 ? 0 : auction.Bids.Max(b => b.NumberOfTokens) + 1; var result = new DetailsAuctionViewModel { Id = auction.Id.ToString(), Name = auction.Name, Currency = auction.Currency, CurrentPrice = auction.CurrentPrice, //Duration = auction.Status == AuctionStatus.COMPLETED ? "00:00:00" : GetDuration(span), ClosingTime = auction.ClosingTime.GetValueOrDefault(), Image = auction.Image, CurrentNumberOfTokens = Math.Max((long)(Math.Ceiling(auction.CurrentPrice / dv.TokenValue)), token), LastBidder = auction.User != null ? (auction.User.Name + " " + auction.User.Surname) : "", Status = auction.Status }; var bids = new List <DetailsBidViewModel>(); foreach (var bid in auction.Bids.OrderByDescending(b => b.PlacingTime)) { bids.Add(new DetailsBidViewModel { NumberOfTokens = bid.NumberOfTokens, PlacingTime = bid.PlacingTime.ToLocalTime(), User = bid.User.Name + " " + bid.User.Surname }); } long pageSize = 15; int pageNumber = (page ?? 1); result.Bids = bids.ToPagedList(pageNumber, (int)pageSize); return(result); } } } catch (Exception e) { logger.Error("GetAuctionDetailsById", e); } return(null); }