public async Task UpdateClient(string providerId, ProviderClient client) { var q = _builder .Eq(x => x.Id, providerId) .Match(x => x.Clients, x => x.UserId == client.UserId) .UpdateSet(x => x.Clients[-1].Email, client.Email) .UpdateSet(x => x.Clients[-1].Roles, client.Roles); await UpdateByQuery(q); }
public async Task <ProviderClient> AddClient(string providerId, ProviderClient client) { var q = _builder .Eq(x => x.Id, providerId) .UpdateAddToSet(x => x.Clients, client); await UpdateByQuery(q); return(client); }
public void ProcessProviderClientIdentifiers(ProviderClient client, ProviderClientIdentifier identifier) { if (client.ProviderClientIdentifiers.Exists(i => i.TypeCode == identifier.TypeCode)) { var existing = client.ProviderClientIdentifiers.Where(i => i.TypeCode == identifier.TypeCode).Single(); existing = identifier; } else { client.ProviderClientIdentifiers.Add(identifier); } }
public static void Main(string[] args) { database.Populate(); //enter if terminal should be provider if (PROVIDER_TERMINAL) { ProviderClient client = new ProviderClient(); } //enter if terminal should be provider if (MANAGER_TERMINAL) { ManagerClient client = new ManagerClient(); } }
public void UpsertProviderClient(ProviderClient providerClient) { using (var db = new fasams_db()) { ProviderClient existing = db.ProviderClients .Include(x => x.ProviderClientIdentifiers) .Include(x => x.ProviderClientPhones) .Include(x => x.ProviderClientEmailAddresses) .Include(x => x.ProviderClientPhysicalAddresses) .SingleOrDefault(c => c.SourceRecordIdentifier == providerClient.SourceRecordIdentifier && c.FederalTaxIdentifier == providerClient.FederalTaxIdentifier); if (existing == null) { db.ProviderClients.Add(providerClient); foreach (var row in providerClient.ProviderClientIdentifiers) { db.ProviderClientIdentifiers.Add(row); } if (providerClient.ProviderClientPhones != null) { foreach (var row in providerClient.ProviderClientPhones) { db.ProviderClientPhones.Add(row); } } if (providerClient.ProviderClientEmailAddresses != null) { foreach (var row in providerClient.ProviderClientEmailAddresses) { db.ProviderClientEmailAddresses.Add(row); } } if (providerClient.ProviderClientPhysicalAddresses != null) { foreach (var row in providerClient.ProviderClientPhysicalAddresses) { db.ProviderClientPhysicalAddresses.Add(row); } } } else { db.Entry(existing).CurrentValues.SetValues(providerClient); } db.SaveChanges(); } }
public ProviderClient OpportuniticlyLoadProviderClient(string SourceRecordIdentifier, string FederalTaxIdentifier) { using (var db = new fasams_db()) { ProviderClient existing = db.ProviderClients .Include(x => x.ProviderClientIdentifiers) .Include(x => x.ProviderClientPhones) .Include(x => x.ProviderClientEmailAddresses) .Include(x => x.ProviderClientPhysicalAddresses) .SingleOrDefault(c => c.SourceRecordIdentifier == SourceRecordIdentifier && c.FederalTaxIdentifier == FederalTaxIdentifier); if (existing == null) { existing = new ProviderClient { ProviderClientIdentifiers = new List <ProviderClientIdentifier>() }; } return(existing); } }
public async Task <UserPorviderProofResponseModel> LoginProof(string providerToken, string userToken) { var provider = await _repositoryProvider.GetByToken(providerToken); if (provider == null) { throw new MRException <object>(-1, "Wrong provider token"); } (var providerId, var userId) = ProviderTokenGenerator.DecryptToken(userToken); if (!provider.Id.Equals(providerId)) { throw new MRException <object>(-1, "Wrong provider token"); } var user = await _repositoryUser.GetFirst(x => x.Id == userId && x.State == MREntityState.Active); if (user == null) { throw new MRException <object>(-1, "User not found"); } var providerLogin = new ProviderClientLogin { ProviderToken = providerToken, ClientToken = userToken, Time = DateTime.UtcNow }; if (provider.Clients == null) { provider.Clients = new List <ProviderClient>(); await _repositoryProvider.Replace(provider); } var providerClient = provider.Clients.FirstOrDefault(x => x.UserId == user.Id); if (providerClient == null) { providerClient = new ProviderClient { UserId = user.Id, Email = user.Email, Roles = provider.Options.DefaultRoles, Logins = new List <ProviderClientLogin> { providerLogin } }; provider.Clients.Add(providerClient); await _repositoryProvider.AddClient(provider.Id, providerClient); } else { await _repositoryProvider.AddClientLogin(provider.Id, providerClient.UserId, providerLogin); } var model = _mapper.Map <UserPorviderProofResponseModel>(user); model.Roles = providerClient.Roles; model.IsEmailConfirmed = await _managerUser.IsEmailConfirmedAsync(user); model.IsEmailOnChange = await _repositoryEmailChangeUnit.Any(x => x.UserId == user.Id && x.Status == Infrastructure.Entity.Enum.EmailChangeResult.NEW); return(model); }