public ExecutionResult SaveClientEntity(SaveClientRequest request, ExecutionContext context) { var dto = (ClientDto)request.Value; var entity = dto.Id > 0 ? AdbRepository.ClientData.GetEntityById(dto.Id) : CreateEntity(); Mapper.Map(dto, entity); entity.Name = $"{dto.LastName} {dto.FirstName} {dto.MiddleName}"; AdbRepository.ClientData.Save(entity); return(new ExecutionResult()); }
public async Task <IActionResult> Save([FromBody] SaveClientRequest request) { request.RedirectUris.Add("http://localhost:7030/Auth/AuthorizationGrantCode"); var clientEntity = await _configurationDbContext.Clients.Include(x => x.RedirectUris).SingleOrDefaultAsync(x => x.ClientId == request.ClientId); var oldRedirectUriList = clientEntity.RedirectUris.ToList(); var newRedirectUriList = new List <ClientRedirectUri>(); foreach (var item in oldRedirectUriList) { if (!request.RedirectUris.Contains(item.RedirectUri)) { clientEntity.RedirectUris.Remove(item); } } foreach (var item in request.RedirectUris) { if (!clientEntity.RedirectUris.Any(x => x.RedirectUri == item)) { clientEntity.RedirectUris.Add(new ClientRedirectUri { RedirectUri = item }); } } var entry = _configurationDbContext.Clients.Update(clientEntity); var result = await _configurationDbContext.SaveChangesAsync(); if (result > 0) { var response = new CreateClientResponse { ClientId = entry.Entity.ClientId, RedirectUris = entry.Entity.RedirectUris.Select(x => x.RedirectUri).ToList() }; return(await Task.FromResult(Ok(response))); } return(BadRequest()); }