Ejemplo n.º 1
0
 public GenericRepository(ILogger <GenericRepository <T> > logger, MatchingDbContext dbContext)
 {
     _logger    = logger;
     _dbContext = dbContext;
 }
 public OpportunityRepository(ILogger <OpportunityRepository> logger, MatchingDbContext dbContext) : base(logger, dbContext)
 {
 }
        public async Task Then_Send_Email_And_Save_Email_History_And_Update_Email_History_If_Status_Is_Null(
            string status,
            MatchingConfiguration configuration,
            [Frozen] MatchingDbContext dbContext,
            IAsyncNotificationClient notificationClient,
            ILogger <GenericRepository <EmailTemplate> > emailTemplateLogger,
            ILogger <GenericRepository <EmailHistory> > emailHistoryLogger,
            ILogger <GenericRepository <FunctionLog> > functionLogLogger,
            ILogger <EmailService> emailServiceLogger,
            [Frozen] Domain.Models.Opportunity opportunity,
            [Frozen] OpportunityItem opportunityItem,
            [Frozen] Domain.Models.Provider provider,
            [Frozen] Domain.Models.ProviderVenue venue,
            [Frozen] BackgroundProcessHistory backgroundProcessHistory,
            [Frozen] EmailHistory emailHistory,
            [Frozen] EmailTemplate emailTemplate,
            [Frozen] EmailNotificationResponse emailNotificationResponse,
            EmailDeliveryStatusPayLoad payLoad
            )
        {
            //Arrange
            Guid.TryParse(emailNotificationResponse.id, out var notificationId);
            payLoad.Status = status;
            payLoad.Id     = notificationId;

            var(templateRepository, emailHistoryRepository, functionLogRepository, mapper)
                = SetUp(dbContext, emailTemplateLogger, emailHistoryLogger, functionLogLogger);

            var sut = new EmailService(configuration, notificationClient, templateRepository, emailHistoryRepository,
                                       functionLogRepository, mapper, emailServiceLogger);

            var tokens = new Dictionary <string, string>
            {
                { "contactname", "name" }
            };

            notificationClient.SendEmailAsync(Arg.Any <string>(), Arg.Any <string>(),
                                              Arg.Any <Dictionary <string, dynamic> >()).Returns(Task.FromResult(emailNotificationResponse));

            await DataBuilder.SetTestData(dbContext, provider, venue, opportunity, backgroundProcessHistory);

            await DataBuilder.SetEmailTemplate(dbContext, emailTemplate);

            //Act
            await sut.SendEmailAsync(emailTemplate.TemplateName, "*****@*****.**", opportunity.Id, opportunityItem.Id, tokens, "System");

            //Assert
            var data = dbContext.EmailHistory.AsNoTracking().FirstOrDefault(x => x.NotificationId == notificationId);

            data.Should().NotBeNull();
            data?.EmailTemplateId.Should().Be(emailHistory.EmailTemplateId);
            data?.NotificationId.Should().Be(emailNotificationResponse.id);
            data?.CreatedBy.Should().Be("System");
            data?.Status.Should().BeNullOrEmpty();
            data?.ModifiedBy.Should().BeNullOrEmpty();
            data?.ModifiedOn.Should().BeNull();

            dbContext.DetachAllEntities();

            //Act - Update Email With Status
            await sut.UpdateEmailStatus(payLoad);

            data = dbContext.EmailHistory.AsNoTracking().FirstOrDefault(x => x.NotificationId == notificationId);

            data.Should().NotBeNull();
            data?.EmailTemplateId.Should().Be(emailHistory.EmailTemplateId);
            data?.Status.Should().NotBeNullOrEmpty();
            data?.Status.Should().Be(payLoad.Status);
            data?.NotificationId.Should().Be(emailNotificationResponse.id);
            data?.CreatedBy.Should().Be("System");
            data?.ModifiedBy.Should().Be("System");
        }
 public QualificationRouteMappingRepository(ILogger <QualificationRouteMappingRepository> logger, MatchingDbContext dbContext) : base(logger, dbContext)
 {
 }
 public ProviderVenueRepository(ILogger <ProviderVenueRepository> logger, MatchingDbContext dbContext) : base(logger, dbContext)
 {
 }
Ejemplo n.º 6
0
 public SqlSearchProvider(ILogger <SqlSearchProvider> logger, MatchingDbContext matchingDbContext)
 {
     _logger            = logger;
     _matchingDbContext = matchingDbContext;
 }
Ejemplo n.º 7
0
 public LocalEnterprisePartnershipBuilder(MatchingDbContext context)
 {
     _context = context;
 }
Ejemplo n.º 8
0
        public async Task Then_Make_TLevel_Provider_Flag_To_True(
            MatchingDbContext dbContext,
            Domain.Models.Provider provider,
            List <ProviderVenueViewModel> venueViewModels,
            MatchingConfiguration config,
            ILogger <GenericRepository <Domain.Models.Provider> > providerLogger,
            ILogger <GenericRepository <ProviderReference> > providerReferenceLogger,
            IHttpContextAccessor httpContextAccessor,
            IDateTimeProvider dateTimeProvider
            )
        {
            //Arrange
            provider.IsTLevelProvider = false;

            await dbContext.AddAsync(provider);

            await dbContext.SaveChangesAsync();

            dbContext.Entry(provider).State = EntityState.Detached;

            var viewModel = new ProviderDetailViewModel
            {
                Id = provider.Id,
                IsTLevelProvider = true,
                ProviderVenues   = venueViewModels
            };

            httpContextAccessor.HttpContext.Returns(new DefaultHttpContext
            {
                User = new ClaimsPrincipal(new ClaimsIdentity(new[]
                {
                    new Claim(ClaimTypes.GivenName, "System")
                }))
            });

            var mapperConfig = new MapperConfiguration(c =>
            {
                c.AddMaps(typeof(ProviderMapper).Assembly);
                c.ConstructServicesUsing(type =>
                                         type.Name.Contains("LoggedInUserNameResolver")
                        ? (object)new LoggedInUserNameResolver <ProviderDetailViewModel, Domain.Models.Provider>(httpContextAccessor)
                        : type.Name.Contains("UtcNowResolver")
                                ? new UtcNowResolver <ProviderDetailViewModel, Domain.Models.Provider>(dateTimeProvider)
                                : null);
            });

            var mapper = new Mapper(mapperConfig);

            var providerReferenceRepo = new GenericRepository <ProviderReference>(providerReferenceLogger, dbContext);
            var repo            = new GenericRepository <Domain.Models.Provider>(providerLogger, dbContext);
            var providerService = new ProviderService(mapper, repo, providerReferenceRepo);

            var sut = new ProviderController(providerService, config);

            //Act
            await sut.SaveProviderDetailAsync(viewModel);

            //Assert
            var result = await repo.GetSingleOrDefaultAsync(x => x.Id == provider.Id);

            provider.IsTLevelProvider.Should().BeFalse();
            result.IsTLevelProvider.Should().BeTrue();
        }
Ejemplo n.º 9
0
 public PostcodeLookupBuilder(MatchingDbContext context)
 {
     _context = context;
 }
 public EmployerBuilder(MatchingDbContext context)
 {
     _context = context;
 }