private bool CheckSavedSearchExists(string resourceGroupName, string workspaceName, string savedSearchId) { try { PSSavedSearchValue savedSearch = GetSavedSearch(resourceGroupName, workspaceName, savedSearchId); return(true); } catch (Rest.Azure.CloudException e) { // Get throws NotFound exception if the saved search does not exist if (e.Response.StatusCode == HttpStatusCode.NotFound) { return(false); } throw; } }
public virtual PSSavedSearchValue CreateSavedSearch(PSSavedSearchParameters parameters, Action <bool, string, string, string, Action, Func <bool> > ConfirmAction, bool force) { PSSavedSearchValue existingSavedSearch; try { existingSavedSearch = GetSavedSearch(parameters.ResourceGroupName, parameters.WorkspaceName, parameters.SavedSearchId); } catch (RestException) { existingSavedSearch = null; } if (existingSavedSearch != null) { throw new PSInvalidOperationException($"Saved search with id: '{parameters.SavedSearchId}' already exists in resource group: '{parameters.ResourceGroupName}', workspace: '{parameters.WorkspaceName}'. Please use Set-OperationalInsightsSavedSearch for updating."); } PSSavedSearchValue createdSavedSearch = null; Action createSavedSearch = () => { createdSavedSearch = new PSSavedSearchValue(this.OperationalInsightsManagementClient.SavedSearches.CreateOrUpdate(parameters.ResourceGroupName, parameters.WorkspaceName, parameters.SavedSearchId, parameters.GetSavedSearchFromParameters())); }; ConfirmAction( force, string.Format( CultureInfo.InvariantCulture, Resources.SavedSearchExists, parameters.SavedSearchId, parameters.WorkspaceName), string.Format( CultureInfo.InvariantCulture, Resources.SavedSearchCreating, parameters.SavedSearchId, parameters.WorkspaceName), parameters.SavedSearchId, createSavedSearch, () => CheckSavedSearchExists(parameters.ResourceGroupName, parameters.WorkspaceName, parameters.SavedSearchId)); return(createdSavedSearch); }