Exemple #1
0
        public PaymentTests()
        {
            var today = new DateTimeOffset(new DateTime(2019, 08, 19, 0, 0, 0, DateTimeKind.Utc));

            _dateProvider = Substitute.For <IProvideDateTime>();
            _dateProvider.UtcNow().Returns(today);
        }
Exemple #2
0
        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;
 }
Exemple #5
0
 /// <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;
 }
Exemple #6
0
        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));
        }
Exemple #7
0
        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);
        }
Exemple #8
0
            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");
            }
Exemple #9
0
 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;
		}
Exemple #11
0
 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);
     });
 }
Exemple #12
0
        public static ValidationResult Validate(int month, int year, IProvideDateTime dateProvider)
        {
            var instance = CreateInstance(month, year);

            return(new Validator(dateProvider).Validate(instance));
        }
Exemple #13
0
 /// <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;
 }