public async Task <HttpResponseMessage> PostAsync(GetAnonTokenInput input) { if (string.IsNullOrEmpty(input.ApplicationSessionId)) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"No or invalid callback context specified!\"}")); } if (string.IsNullOrEmpty(input.AllowedOrigins)) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid AllowedOrigins\"}")); } string jobId = Guid.NewGuid().ToString("N"); try { PlatformServiceSampleJobConfiguration jobConfig = new PlatformServiceSampleJobConfiguration { JobType = JobType.GetAnonToken, AnonTokenJobInput = input }; var job = PlatformServiceClientJobHelper.GetJob(jobId, WebApiApplication.InstanceId, WebApiApplication.AzureApplication, jobConfig) as GetAnonTokenJob; if (job == null) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid job input or job type\"}")); } AnonymousToken token = await job.ExecuteWithResultAsync <AnonymousToken>().ConfigureAwait(false); if (token == null) { return(CreateHttpResponse(HttpStatusCode.InternalServerError, "{\"Error\":\"Job did not return a token\"}")); } return(Request.CreateResponse(HttpStatusCode.OK, token)); } catch (Exception ex) { telemetry.TrackException(ex); Logger.Instance.Error(ex, "Exception while scheduling job."); return(CreateHttpResponse(HttpStatusCode.InternalServerError, "{\"Error\":\"An unexecpted error occured while starting the job.\"}")); } }
private OAuth2Token GetOrCreateToken() { if (UploadMethod == AccountType.User) { if (!CheckAuthorization()) { return(null); } return(AuthInfo.Token); } else { if (AnonymousToken == null || AnonymousToken.IsExpired) { string request = JsonConvert.SerializeObject(new { client_id = AuthInfo.Client_ID, client_secret = AuthInfo.Client_Secret, grant_type = "client_credentials", }); string response = SendRequest(HttpMethod.POST, URL_API_TOKEN, request, RequestHelpers.ContentTypeJSON); if (!string.IsNullOrEmpty(response)) { AnonymousToken = JsonConvert.DeserializeObject <OAuth2Token>(response); if (AnonymousToken != null && !string.IsNullOrEmpty(AnonymousToken.access_token)) { AnonymousToken.UpdateExpireDate(); } } } return(AnonymousToken); } }
/** * <summary> * Attempts to perform a search requests, on any exception attempts to load from local cache. * </summary> * <param name="searchText"></param> * <param name="sorting"></param> * <param name="onlyCurrentUser"></param> * <param name="projectKey"></param> * <param name="statuses"></param> * <param name="profile"></param> * <returns></returns> */ async public Task <SearchResults> Search(string searchText, string sorting, bool onlyCurrentUser, string projectKey, List <string> statuses, List <string> issueTypes, Profile profile, AnonymousToken isValid) { try { var SearchParams = new SearchSettings() { Summary = searchText, Sorting = sorting, AssignedToCurrentUser = onlyCurrentUser, Project = projectKey, Statuses = statuses, IssueTypes = issueTypes }; var results = await jira.Issues.GetIssuesFromJqlAsync(SearchParams.ToString()); var issues = new ObservableCollection <Issue>(); foreach (JiraIssue issue in results) { Issue item = new Issue(); item.Status = issue.Status.Name; item.ProjectKey = issue.Project; item.Key = issue.Key.Value; item.Value = issue.Summary; item.Summary = issue.Summary; item.Type = issue.Type.Name; item.TypeId = issue.Type.Id; item.TimeSpent = issue.TimeTrackingData.TimeSpent; issues.Add(item); profile.Issues[item.Key] = item; } //save profile AppState.Profiles.Save(); var searchResults = new SearchResults() { Offline = false, Issues = issues, Valid = isValid.Valid }; return(searchResults); } catch (Exception e) { AppState.Logger.Log(this, "Search", e.Message); var issues = new ObservableCollection <Issue>(); foreach (Issue item in profile.Issues.Values) { if (projectKey.Length > 0 && item.ProjectKey != projectKey) { continue; } if (statuses.Count > 0 && !statuses.Contains(item.Status)) { continue; } if (!item.Value.Contains(searchText, StringComparison.InvariantCultureIgnoreCase)) { continue; } if (issueTypes.Count > 0 && !issueTypes.Contains(item.TypeId)) { continue; } issues.Add(item); } var searchResults = new SearchResults() { Offline = true, Issues = issues, Valid = isValid.Valid }; return(searchResults); } }