public SCIMUser updateUser(SCIMUser user) { bool result = false; if (user == null) { throw new ArgumentNullException("user"); } SCIMUser existingUser; //if (users.TryGetValue(user.id, out existingUser)) //{ // result = users.TryUpdate(user.id, user, existingUser); //} existingUser = _cacheService.GetSCIMUser(user.id); if (existingUser == null) { throw new OnPremUserManagementException("User Not Found for Update"); } else { result = _cacheService.UpdateSCIMUser(user.id, user); } return(user); }
//Users public SCIMUser createUser(SCIMUser user) { SCIMUser tempUser = new SCIMUser(); bool result = false; try { if (user.id == null) { user.id = Guid.NewGuid().ToString(); } tempUser = _cacheService.GetSCIMUser(user.id); if (tempUser != null) { // duplicate user throw new OnPremUserManagementException("User id already exists"); } else { result = _cacheService.AddSCIMUser(user.id, user); } } catch (Exception e) { throw e; } return(user); }
public bool AddSCIMUser(string externalId, SCIMUser user) { bool response = true; _cache.Set(externalId, user, expiration); return(response); }
public IHttpActionResult PostUser([FromBody] SCIMUser user) { logger.Debug("Enter PostUser " + user.userName); SCIMUser scimUserOut = new SCIMUser(); try { scimUserOut = connector.createUser(user); if (string.IsNullOrEmpty(scimUserOut.id)) { logger.Error("Exit error create user name " + user.userName); SCIMException createException = new SCIMException(); createException.ErrorMessage = "error create user name " + user.userName; createException.ErrorSummary = "error create user name " + user.userName; return(InternalServerError(createException)); } else { //return Ok(); logger.Debug("Exit Successfully created user username " + scimUserOut.userName + " appId " + scimUserOut.id); string uri = Url.Link("DefaultAPI", new { id = user.id }); return(Created <SCIMUser>(uri, scimUserOut)); } } catch (Exception e) { logger.Debug("Exit Exception at PostUser "); logger.Error(e); return(InternalServerError(e)); } }
public IHttpActionResult Patch(String id, [FromBody] SCIMUserOperation operation) { bool result = true; SCIMUser scimUserOut = new SCIMUser(); if (id == null) { logger.Error("Error at PATCH User, id missing "); return(BadRequest()); } else { logger.Debug("Enter Patch Id " + id); } try { if (operation.Operations[0].op == "replace") { if (operation.Operations[0].value.active) { scimUserOut = connector.reactivateUser(id); } else { scimUserOut = connector.deactivateUser(id); } if (string.IsNullOrEmpty(scimUserOut.id)) { logger.Error("Exit error update user id " + id); SCIMException updateException = new SCIMException(); updateException.ErrorMessage = "error update user id " + id; updateException.ErrorSummary = "error update user id " + id; return(InternalServerError(updateException)); } else { //return Ok(); logger.Debug("Exit Successfully updated user username " + scimUserOut.userName + " appId " + scimUserOut.id); return(Ok <SCIMUser>(scimUserOut)); } } else { logger.Debug("Exit Patch user failed with unknown operation " + id); SCIMException patchException = new SCIMException(); patchException.ErrorMessage = "Patch user failed with unknown operation id " + id; patchException.ErrorSummary = "Patch user failed with unknown operation " + id; return(InternalServerError(patchException)); } } catch (Exception e) { logger.Debug("Exit Error at Patching User Status "); logger.Error(e); return(InternalServerError(e)); } }
public bool UpdateSCIMUser(string externalId, SCIMUser user) { bool response = true; SCIMUser temp = new SCIMUser(); if (_cache.Contains(externalId)) { _cache.Remove(externalId); _cache.Set(externalId, user, expiration); } else { _cache.Set(externalId, user, expiration); } return(response); }
public SCIMUser getUser(string id) { SCIMUser user = null; try { //users.TryGetValue(id, out user); user = _cacheService.GetSCIMUser(id); } catch (Exception e) { throw new OnPremUserManagementException("getUser", e); } if (user == null) { throw new EntityNotFoundException(id); } return(user); }
public IActionResult Put(string id, [FromBody] SCIMUser user) { SCIMUser scimUserOut = new SCIMUser(); if (id == null) { _logger.LogError("Error at PUT User, id missing "); return(BadRequest()); } else { _logger.LogDebug("Enter Put " + user.displayName + " Id " + id); } try { user.id = id; scimUserOut = _connector.updateUser(user); if (string.IsNullOrEmpty(scimUserOut.id)) { _logger.LogError("Exit error update user id " + id); SCIMException updateException = new SCIMException(); updateException.ErrorMessage = "error update user id " + id; updateException.ErrorSummary = "error update user id " + id; return(StatusCode(StatusCodes.Status500InternalServerError, updateException)); } else { //return Ok(); _logger.LogDebug("Exit Successfully updated user username " + scimUserOut.userName + " appId " + scimUserOut.id); return(Ok(scimUserOut)); } } catch (Exception e) { _logger.LogDebug("Exit Error at PUT User"); _logger.LogError(e.ToString()); return(StatusCode(StatusCodes.Status500InternalServerError, e)); } }
public IActionResult getUser(string id) { SCIMUser scimUserOut = new SCIMUser(); if (id == null) { _logger.LogError("Error at getUser by Id, null value"); return(BadRequest()); } else { _logger.LogDebug("Enter getUser " + id); } try { scimUserOut = _connector.getUser(id); if (string.IsNullOrEmpty(scimUserOut.id)) { _logger.LogDebug("Exit Success but user not found"); return(NotFound()); } else { _logger.LogDebug("Exit Successfully found user username " + scimUserOut.userName + " appId " + scimUserOut.id); return(Ok(scimUserOut)); } } catch (EntityNotFoundException e) { _logger.LogDebug("Exit entity not found trying to get user"); return(NotFound()); } catch (Exception e) { _logger.LogDebug("Exit Error at getUser "); _logger.LogError(e.ToString()); return(StatusCode(StatusCodes.Status500InternalServerError, e)); } }
public IActionResult PostUser([FromBody] SCIMUser user) { _logger.LogDebug("Enter PostUser " + user.userName); SCIMUser scimUserOut = new SCIMUser(); try { scimUserOut = _connector.createUser(user); if (string.IsNullOrEmpty(scimUserOut.id)) { _logger.LogError("Exit error create user name " + user.userName); SCIMException createException = new SCIMException(); createException.ErrorMessage = "error create user name " + user.userName; createException.ErrorSummary = "error create user name " + user.userName; //return InternalServerError(createException); return(StatusCode(StatusCodes.Status500InternalServerError, createException)); } else { //return Ok(); _logger.LogDebug("Exit Successfully created user username " + scimUserOut.userName + " appId " + scimUserOut.id); //string uri = Url.Link("DefaultAPI", new { id = user.id }); string uri = "https://default.com"; return(Created(uri, scimUserOut)); } } catch (Exception e) { _logger.LogDebug("Exit Exception at PostUser "); _logger.LogError(e.ToString()); //return InternalServerError(e); return(StatusCode(StatusCodes.Status500InternalServerError, e)); } }