public static ProductButton Create(RaceDayKey raceDay, BetTypeCode product) { return(new ProductButton { Url = $"/Spill#/{RaceDayKey.ToString(raceDay)}/{product}/", Text = product.PresentAsText() }); }
public string FindLinkForNextAvailableProduct(string value, string baseLink) { BetTypeCode product = value.TryCastTo <BetTypeCode>(); if (product == BetTypeCode.Undefined || !product.IsVGame()) { return(null); } IList <ActivePoolsForRaceDay> racedays = _raceDayServiceGateway.GetActivePoolsForRaceDay(); ActivePoolsForRaceDay raceday = racedays .OrderBy(x => x.StartTime) .FirstOrDefault(x => x.Products.Any(p => p.Product == product && p.IsOpenForBet)); return(raceday == null ? null : $"{baseLink}#/{RaceDayKey.ToString(raceday.RaceDay)}/{product}/"); }
public IHttpActionResult ProcessPurchase(PurchaseRequest purchase) { BetData betData = BetData.Parse(purchase.BetData); CustomerKey customerKey = _customerProvider.GetCurrentCustomer().Key; PurchaseErrorCode errorCode = ValidatePurchaseRequest(customerKey, betData.EstimatedTotalPrice); if (errorCode != PurchaseErrorCode.NotSet) { return(Ok(RestResult <string> .CreateFailed(errorCode.ToString()))); } Guid purchaseIdentifier = Guid.NewGuid(); CommandResult placeBetResult = _bettingServiceGateway.Execute(new PlaceNormalBetForMultiLegGame { PurchaseIdentifier = purchaseIdentifier, CustomerPlacingBet = _customerServiceGateway.GetBettingReference(GetCustomerBettingInfo(customerKey)), RaceDay = betData.RaceDayKey, Product = betData.BetTypeCode, FirstRaceNumber = betData.RaceNumber, IsFirstPrizeOnlyBet = betData.IsFirstPrizeOnlyBet, LegMarks = betData.Marks.ToDictionary(mark => mark.LegNumber, mark => mark.Marks), RowPrice = Money.FromOere(betData.RowPrice) }); if (!placeBetResult.IsExecuted) { return(Ok(RestResult <string> .CreateFailed(placeBetResult.ErrorCode.ToString(), placeBetResult.Message))); } TicketKey ticketKey = _bettingServiceGateway.GetTicketSerialNumber(purchaseIdentifier); SingleBetItem betItem = _bettingHistoryServiceGateway.GetBetItem(new TicketKey(ticketKey.TicketSerialNumber)); return(Ok(RestResult <PurchaseReceipt> .CreateSuccess(new PurchaseReceipt { TicketSerialNumber = ticketKey.TicketSerialNumber, RaceDay = RaceDayKey.ToString(betData.RaceDayKey), Product = betData.BetTypeCode.ToString(), SellFee = betItem.TicketReceipt.SellFee.Amount, BetCost = betItem.TicketReceipt.BetCost.Amount, PurchaseTime = betItem.TicketReceipt.BetTimeSold }))); }