public OrganizationUserAttribute( OrganizationUserStatusType status = OrganizationUserStatusType.Confirmed, OrganizationUserType type = OrganizationUserType.User) { _status = status; _type = type; }
public async Task <int> GetCountByTypeApplicableToUserIdAsync(Guid userId, PolicyType policyType, OrganizationUserStatusType minStatus) { using (var scope = ServiceScopeFactory.CreateScope()) { var dbContext = GetDatabaseContext(scope); var query = new PolicyReadByTypeApplicableToUserQuery(userId, policyType, minStatus); return(await GetCountFromQuery(query)); } }
public async Task <int> GetCountByTypeApplicableToUserIdAsync(Guid userId, PolicyType policyType, OrganizationUserStatusType minStatus) { using (var connection = new SqlConnection(ConnectionString)) { var result = await connection.ExecuteScalarAsync <int>( $"[{Schema}].[{Table}_CountByTypeApplicableToUser]", new { UserId = userId, PolicyType = policyType, MinimumStatus = minStatus }, commandType : CommandType.StoredProcedure); return(result); } }
[EfPolicyApplicableToUserInlineAutoData(OrganizationUserType.User, false, OrganizationUserStatusType.Invited, true, true, false)] // User not minStatus public async void GetManyByTypeApplicableToUser_Works_DataMatches_Corre( // Inline data OrganizationUserType userType, bool canManagePolicies, OrganizationUserStatusType orgUserStatus, bool policyEnabled, bool policySameType, bool isProvider, // Auto data - models TableModel.Policy policy, TableModel.User user, TableModel.Organization organization, TableModel.OrganizationUser orgUser, TableModel.Provider.Provider provider, TableModel.Provider.ProviderOrganization providerOrganization, TableModel.Provider.ProviderUser providerUser, PolicyCompareIncludingOrganization equalityComparer, // Auto data - EF repos List <EfRepo.PolicyRepository> suts, List <EfRepo.UserRepository> efUserRepository, List <EfRepo.OrganizationRepository> efOrganizationRepository, List <EfRepo.OrganizationUserRepository> efOrganizationUserRepository, List <EfRepo.ProviderRepository> efProviderRepository, List <EfRepo.ProviderOrganizationRepository> efProviderOrganizationRepository, List <EfRepo.ProviderUserRepository> efProviderUserRepository, // Auto data - SQL repos SqlRepo.PolicyRepository sqlPolicyRepo, SqlRepo.UserRepository sqlUserRepo, SqlRepo.OrganizationRepository sqlOrganizationRepo, SqlRepo.ProviderRepository sqlProviderRepo, SqlRepo.OrganizationUserRepository sqlOrganizationUserRepo, SqlRepo.ProviderOrganizationRepository sqlProviderOrganizationRepo, SqlRepo.ProviderUserRepository sqlProviderUserRepo ) { // Combine EF and SQL repos into one list per type var policyRepos = suts.ToList <IPolicyRepository>(); policyRepos.Add(sqlPolicyRepo); var userRepos = efUserRepository.ToList <IUserRepository>(); userRepos.Add(sqlUserRepo); var orgRepos = efOrganizationRepository.ToList <IOrganizationRepository>(); orgRepos.Add(sqlOrganizationRepo); var orgUserRepos = efOrganizationUserRepository.ToList <IOrganizationUserRepository>(); orgUserRepos.Add(sqlOrganizationUserRepo); var providerRepos = efProviderRepository.ToList <IProviderRepository>(); providerRepos.Add(sqlProviderRepo); var providerOrgRepos = efProviderOrganizationRepository.ToList <IProviderOrganizationRepository>(); providerOrgRepos.Add(sqlProviderOrganizationRepo); var providerUserRepos = efProviderUserRepository.ToList <IProviderUserRepository>(); providerUserRepos.Add(sqlProviderUserRepo); // Arrange data var savedPolicyType = PolicyType.SingleOrg; var queriedPolicyType = policySameType ? savedPolicyType : PolicyType.DisableSend; orgUser.Type = userType; orgUser.Status = orgUserStatus; var permissionsData = new Permissions { ManagePolicies = canManagePolicies }; orgUser.Permissions = JsonSerializer.Serialize(permissionsData, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, }); policy.Enabled = policyEnabled; policy.Type = savedPolicyType; var results = new List <TableModel.Policy>(); foreach (var policyRepo in policyRepos) { var i = policyRepos.IndexOf(policyRepo); // Seed database var savedUser = await userRepos[i].CreateAsync(user); var savedOrg = await orgRepos[i].CreateAsync(organization); orgUser.UserId = savedUser.Id; orgUser.OrganizationId = savedOrg.Id; await orgUserRepos[i].CreateAsync(orgUser); if (isProvider) { var savedProvider = await providerRepos[i].CreateAsync(provider); providerOrganization.OrganizationId = savedOrg.Id; providerOrganization.ProviderId = savedProvider.Id; await providerOrgRepos[i].CreateAsync(providerOrganization); providerUser.UserId = savedUser.Id; providerUser.ProviderId = savedProvider.Id; await providerUserRepos[i].CreateAsync(providerUser); } policy.OrganizationId = savedOrg.Id; await policyRepo.CreateAsync(policy); if (suts.Contains(policyRepo)) { (policyRepo as BaseEntityFrameworkRepository).ClearChangeTracking(); } // Act var result = await policyRepo.GetManyByTypeApplicableToUserIdAsync(savedUser.Id, queriedPolicyType, OrganizationUserStatusType.Accepted); results.Add(result.FirstOrDefault()); } // Assert var distinctItems = results.Distinct(equalityComparer); Assert.True(results.All(r => r == null) || !distinctItems.Skip(1).Any()); }
public async Task <ICollection <Policy> > GetManyByTypeApplicableToUserIdAsync(Guid userId, PolicyType policyType, OrganizationUserStatusType minStatus) { using (var connection = new SqlConnection(ConnectionString)) { var results = await connection.QueryAsync <Policy>( $"[{Schema}].[{Table}_ReadByTypeApplicableToUser]", new { UserId = userId, PolicyType = policyType, MinimumStatus = minStatus }, commandType : CommandType.StoredProcedure); return(results.ToList()); } }
public PolicyReadByTypeApplicableToUserQuery(Guid userId, PolicyType policyType, OrganizationUserStatusType minimumStatus) { _userId = userId; _policyType = policyType; _minimumStatus = minimumStatus; }
public async Task <ICollection <Core.Entities.Policy> > GetManyByTypeApplicableToUserIdAsync(Guid userId, PolicyType policyType, OrganizationUserStatusType minStatus) { using (var scope = ServiceScopeFactory.CreateScope()) { var dbContext = GetDatabaseContext(scope); var query = new PolicyReadByTypeApplicableToUserQuery(userId, policyType, minStatus); var results = await query.Run(dbContext).ToListAsync(); return(Mapper.Map <List <Core.Entities.Policy> >(results)); } }
public OrganizationUserCustomization(OrganizationUserStatusType status, OrganizationUserType type) { Status = status; Type = type; }