private User QueryUser(int userId) { using (var context = new CrmContext(ConnectionString)) { var repository = new UserRepository(context); return(repository.GetUserById(userId)); } }
private Company QueryCompany() { using (var context = new CrmContext(ConnectionString)) { var repository = new CompanyRepository(context); return(repository.GetCompany()); } }
private string Execute(Func <UserController, string> func, MessageBus messageBus, IDomainLogger logger) { using (var context = new CrmContext(ConnectionString)) { var controller = new UserController(context, messageBus, logger); return(func(controller)); } }
public UserController( CrmContext context, MessageBus messageBus, IDomainLogger domainLogger) { _context = context; _userRepository = new UserRepository(context); _companyRepository = new CompanyRepository(context); _eventDispatcher = new EventDispatcher( messageBus, domainLogger); }
private Company CreateCompany(string domainName, int numberOfEmployees) { using (var context = new CrmContext(ConnectionString)) { var company = new Company(domainName, numberOfEmployees); var repository = new CompanyRepository(context); repository.AddCompany(company); context.SaveChanges(); return(company); } }
private User CreateUser( string email = "*****@*****.**", UserType type = UserType.Employee, bool isEmailConfirmed = false) { using (var context = new CrmContext(ConnectionString)) { var user = new User(0, email, type, isEmailConfirmed); var repository = new UserRepository(context); repository.SaveUser(user); context.SaveChanges(); return(user); } }
public void Changing_email_from_corporate_to_non_corporate() { var optionsBuilder = new DbContextOptionsBuilder <CrmContext>() .UseSqlServer(ConnectionString); using (var context = new CrmContext(optionsBuilder.Options)) { // Arrange var userRepository = new UserRepository(context); var companyRepository = new CompanyRepository(context); var user = new User(0, "*****@*****.**", UserType.Employee, false); userRepository.SaveUser(user); var company = new Company("mycorp.com", 1); companyRepository.SaveCompany(company); context.SaveChanges(); var busSpy = new BusSpy(); var messageBus = new MessageBus(busSpy); var loggerMock = new Mock <IDomainLogger>(); var sut = new UserController( context, messageBus, loggerMock.Object); // Act string result = sut.ChangeEmail(user.UserId, "*****@*****.**"); // Assert Assert.Equal("OK", result); User userFromDb = userRepository.GetUserById(user.UserId); Assert.Equal("*****@*****.**", userFromDb.Email); Assert.Equal(UserType.Customer, userFromDb.Type); Company companyFromDb = companyRepository.GetCompany(); Assert.Equal(0, companyFromDb.NumberOfEmployees); busSpy.ShouldSendNumberOfMessages(1) .WithEmailChangedMessage(user.UserId, "*****@*****.**"); loggerMock.Verify( x => x.UserTypeHasChanged( user.UserId, UserType.Employee, UserType.Customer), Times.Once); } }
public CompanyRepository(CrmContext context) { _context = context; }
public UserRepository(CrmContext context) { _context = context; }