Exemple #1
0
 private TicketCancel(DateTime timestamp, string ticketId, int bookmakerId, TicketCancellationReason code, int?cancelPercent, IEnumerable <IBetCancel> betCancels, string version, string correlationId)
 {
     Timestamp     = timestamp;
     TicketId      = ticketId;
     BookmakerId   = bookmakerId;
     Code          = code;
     CancelPercent = cancelPercent;
     BetCancels    = betCancels;
     Version       = version;
     CorrelationId = correlationId;
 }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TicketCancel"/> class
        /// </summary>
        /// <param name="ticketId">The ticket identifier</param>
        /// <param name="bookmakerId">The bookmaker identifier</param>
        /// <param name="code">The code</param>
        /// <param name="percent">The percent of ticket to cancel</param>
        /// <param name="betCancels">The list of <see cref="IBetCancel"/></param>
        public TicketCancel(string ticketId, int bookmakerId, TicketCancellationReason code, int?percent, IReadOnlyCollection <IBetCancel> betCancels)
        {
            Guard.Argument(ticketId, nameof(ticketId)).Require(TicketHelper.ValidateTicketId(ticketId));
            Guard.Argument(bookmakerId, nameof(bookmakerId)).Positive();
            Guard.Argument(percent, nameof(percent)).Require(TicketHelper.ValidatePercent(percent));
            Guard.Argument(betCancels, nameof(betCancels)).Require(betCancels == null || betCancels.Any());

            if (percent != null && betCancels != null)
            {
                throw new ArgumentException("Percent and BetCancels cannot be set at the same time.");
            }

            TicketId      = ticketId;
            BookmakerId   = bookmakerId;
            Code          = code;
            Timestamp     = DateTime.UtcNow;
            Version       = TicketHelper.MtsTicketVersion;
            CorrelationId = TicketHelper.GenerateTicketCorrelationId();
            CancelPercent = percent;
            BetCancels    = betCancels;
        }
 /// <summary>
 /// Sets the cancellation code
 /// </summary>
 /// <param name="code">The <see cref="TicketCancellationReason" /></param>
 /// <returns>Returns a <see cref="ITicketCancelBuilder" /></returns>
 public ITicketCancelBuilder SetCode(TicketCancellationReason code)
 {
     _code = code;
     return(this);
 }
 /// <summary>
 /// Build a <see cref="ITicketCancel" />
 /// </summary>
 /// <param name="ticketId">The ticket id</param>
 /// <param name="bookmakerId">The bookmaker id</param>
 /// <param name="code">The <see cref="TicketCancellationReason" /></param>
 /// <returns>Return an <see cref="ITicketCancel"/></returns>
 public ITicketCancel BuildTicket(string ticketId, int bookmakerId, TicketCancellationReason code)
 {
     return(new TicketCancel(ticketId, bookmakerId, code, _percent, _betCancels));
 }