public PaymentTests() { var today = new DateTimeOffset(new DateTime(2019, 08, 19, 0, 0, 0, DateTimeKind.Utc)); _dateProvider = Substitute.For <IProvideDateTime>(); _dateProvider.UtcNow().Returns(today); }
public static ExpiryDate Create(int month, int year, IProvideDateTime dateProvider) { var instance = CreateInstance(month, year); new Validator(dateProvider).ValidateAndThrow(instance); return(instance); }
public static EventResponse MapResponse(this IMapper mapper, Event source, IProvideDateTime dateTimeProvider) { if (mapper == null) { throw new ArgumentNullException(nameof(mapper)); } if (dateTimeProvider == null) { throw new ArgumentNullException(nameof(dateTimeProvider)); } var result = mapper.Map <Event, EventResponse>(source); result.RsvpClosesInMs = (result.RsvpClosesAtUtc - dateTimeProvider.Now)?.TotalMilliseconds; if (result != null) { try { var targetTimeZone = TimeZoneInfo.FindSystemTimeZoneById(result.TimeZoneId); result.StartsAtLocal = result.StartsAtUtc.ToLocal(targetTimeZone); result.EndsAtLocal = result.EndsAtUtc.ToLocal(targetTimeZone); result.TimeZoneOffset = targetTimeZone.IsDaylightSavingTime(result.StartsAtLocal) ? targetTimeZone.DaylightName : targetTimeZone.StandardName; if (result.RsvpClosesAtUtc.HasValue) { result.RsvpClosesAtLocal = result.RsvpClosesAtUtc.Value.ToLocal(targetTimeZone); } if (result.Members != null) { foreach (var member in result.Members) { member.RsvpedAtLocal = member.RsvpedAtUtc.ToLocal(targetTimeZone); } } } catch { result.StartsAtLocal = result.StartsAtUtc; result.EndsAtLocal = result.EndsAtUtc; result.RsvpClosesAtLocal = result.RsvpClosesAtUtc; if (result.Members != null) { foreach (var member in result.Members) { member.RsvpedAtLocal = member.RsvpedAtUtc; } } } } return(result); }
public PaymentProcessor(IAggregateRepository <Payment, PaymentId> paymentRepository, IPaymentService paymentService, IAcquiringBank bank, IProvideDateTime dateProvider) { _paymentRepository = paymentRepository; _paymentService = paymentService; _bank = bank; _dateProvider = dateProvider; }
/// <summary> /// Initializes a new instance of the <see cref="EventController"/> class. /// </summary> /// <param name="logger">The application event logger.</param> /// <param name="eventService">The instance of <see cref="IEventService"/> used to create and update Events.</param> /// <param name="eventRepositoryWrite">The instance of <see cref="IRepositoryWrite{Event}"/> used for Event persistence write operations.</param> /// <param name="eventRepositoryRead">The instance of <see cref="IRepositoryRead{Event}"/> used for Event persistence read operations.</param> /// <param name="emailer">The emailer what sends the emails.</param> public EventController(ILogger <EventController> logger, IEventService eventService, IRepositoryWrite <Event> eventRepositoryWrite, IRepositoryRead <Event> eventRepositoryRead, IEmailer emailer, IMapper mapper, IUserAccessor userAccessor, IProvideDateTime dateTimeProvider) { Logger = logger; EventRepositoryWrite = eventRepositoryWrite; EventRepositoryRead = eventRepositoryRead; EventService = eventService; Emailer = emailer; Mapper = mapper; UserAccessor = userAccessor; DateTimeProvider = dateTimeProvider; }
public static Payment Create(IProvideDateTime dateProvider) { var expiryDate = ExpiryDate.Create(08, 2020, dateProvider); var cardNumber = CardNumber.Create("4111 1111 1111 1111"); var ccv = Ccv.Create(123); var paymentId = PaymentId.Create(); var creditCard = CreditCard.Create(cardNumber, expiryDate, ccv); var amount = Money.Create(12, Currency.EUR); return(new Payment(paymentId, creditCard, amount)); }
public CreditCardTests() { // Substitutes var today = new DateTimeOffset(new DateTime(2019, 08, 19, 0, 0, 0, DateTimeKind.Utc)); _dateProvider = Substitute.For <IProvideDateTime>(); _dateProvider.UtcNow().Returns(today); // Shared objects _cardNumber = CardNumber.Create("4111 1111 1111 1111"); _ccv = Ccv.Create(123); _expiryDate = ExpiryDate.Create(09, 2019, _dateProvider); }
public Validator(IProvideDateTime dateProvider) { var now = dateProvider.UtcNow(); RuleFor(c => c.Month).InclusiveBetween(1, 12) .WithMessage("Please specify a valid month number between 1 and 12"); RuleFor(c => c.Year).InclusiveBetween(now.Year, now.Year + 10) .WithMessage("The expiry year is not valid"); RuleFor(c => c.Month).GreaterThanOrEqualTo(now.Month) .When(c => c.Year == now.Year) .WithMessage("The expiry date is outdated"); }
public PostAuthoringController( IRepository <Post> postRepository, IRepository <PostModification> postModificationRepository, IRepository <User> userRepository, IRepository <Redirect> redirectRepository, IRepository <Data.Blog> blogRepository, ISecurityHelper securityHelper, IProvideDateTime dateTime, IHttpContextService httpContext) : base(blogRepository, httpContext) { _postRepository = postRepository; _postModificationRepository = postModificationRepository; _userRepository = userRepository; _redirectRepository = redirectRepository; _blogRepository = blogRepository; _securityHelper = securityHelper; _dateTime = dateTime; }
public PostAuthoringController( IRepository<Post> postRepository, IRepository<PostModification> postModificationRepository, IRepository<User> userRepository, IRepository<Redirect> redirectRepository, IRepository<Data.Blog> blogRepository, ISecurityHelper securityHelper, IProvideDateTime dateTime, IHttpContextService httpContext) : base(blogRepository, httpContext) { _postRepository = postRepository; _postModificationRepository = postModificationRepository; _userRepository = userRepository; _redirectRepository = redirectRepository; _blogRepository = blogRepository; _securityHelper = securityHelper; _dateTime = dateTime; }
public Validator(IProvideDateTime dateProvider) { RuleFor(t => t.CardNumber).Custom((s, context) => { var val = CardNumber.Validate(s); PopulateContextFailuresFromValidationResult(val, context); }); RuleFor(t => t.Ccv).Custom((s, context) => { var val = Ccv.Validate(s); PopulateContextFailuresFromValidationResult(val, context); }); RuleFor(command => command.ExpiryDate).Custom((s, context) => { var val = ExpiryDate.Validate(s.Month, s.Year, dateProvider); PopulateContextFailuresFromValidationResult(val, context); }); RuleFor(command => command.Money).Custom((s, context) => { var val = Money.Validate(s.Amount, s.Currency); PopulateContextFailuresFromValidationResult(val, context); }); }
public static ValidationResult Validate(int month, int year, IProvideDateTime dateProvider) { var instance = CreateInstance(month, year); return(new Validator(dateProvider).Validate(instance)); }
/// <summary> /// Initializes a new instance of the <see cref="EventService"/> class. /// </summary> /// <param name="dateTimeProvider">An instance of <see cref="IProvideDateTime"/>.</param> public EventService(IProvideDateTime dateTimeProvider) { DateTimeProvider = dateTimeProvider; }