public async Task UpdateAsync(string id, AddOrEditClientDto dto) { var entity = await _clients.SingleOrDefaultAsync(x => x.Id.Equals(id)); var clientConfiguration = await _clientConfiguration.Where(x => x.ClientId.Equals(id)).ToListAsync(); _clientConfiguration.RemoveRange(clientConfiguration); AddClientConfiguration(entity); var user = await _user.SingleOrDefaultAsync(x => x.UserName.Equals($"{entity.SubDomain}@{entity.ClientId}")); var strategy = _context.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (var transaction = _context.Database.BeginTransaction()) { await _context.SaveChangesAsync(); await SetCacheTenantProfileAsync(entity, user); await _proxyService.UpdateTenantAsync(entity.ClientId); transaction.Commit(); } }); }
public async Task CreateAsync(AddOrEditClientDto dto) { string clientId = await CheckDuplicationClientIdAsync(dto.SubDomain); var entity = dto.ToEntity(); entity.ClientId = clientId; entity.ClientUri = _tenantConfig.ParseClientUriBySubDomain(dto.SubDomain); _clients.Add(entity); AddClientConfiguration(entity); var user = new User { UserName = $"{dto.SubDomain}@{clientId}" }; user.PasswordHash = _passwordHasher.HashPassword(user, "Admin@1234"); _user.Add(user); _userClient.Add(new UserClient(user.Id, entity.Id)); var strategy = _context.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using var transaction = _context.Database.BeginTransaction(); await _context.SaveChangesAsync(); await SetCacheTenantProfileAsync(entity, user); await _proxyService.CreateTenantAsync(entity.ClientId); transaction.Commit(); }); }
public async Task <IActionResult> Update(string id, [FromBody] AddOrEditClientDto dto) { await _clientService.UpdateAsync(id, dto); return(Success()); }
public async Task <IActionResult> Create([FromBody] AddOrEditClientDto dto) { await _clientService.CreateAsync(dto); return(Success()); }
public static Client ToEntity(this AddOrEditClientDto dto) { return(Mapper.Map <Client>(dto)); }