public override IEnumerable <string> GetCompletionForKeyValue(string key, string value) { var completions = key.ToLowerInvariant() switch { "org" => _orgs, "repo" => _repos, "author" or "area-lead" or "area-owner" => _users, "assignee" => _users, "label" => _labels, "milestone" => _milestones, "area" or "area-under" => _areaPaths, "area-node" => _areaNodes, _ => IssueQuery.SupportedValuesFor(key) .OrderBy(x => x) .ToArray() }; var index = Array.BinarySearch(completions, value, StringComparer.OrdinalIgnoreCase); if (index < 0) { index = ~index; } for (var i = index; i < completions.Length; i++) { var c = completions[i]; if (!c.StartsWith(value, StringComparison.OrdinalIgnoreCase)) { yield break; } yield return(Escape(c)); } }
public CrawledIssueResults Search(string searchText) { if (_indexService.Index is null) { return(CrawledIssueResults.Empty); } var isOpenIssuesQuery = searchText == "is:open is:issue"; if (isOpenIssuesQuery && _openIssuesResults != null) { return(_openIssuesResults); } var stopwatch = Stopwatch.StartNew(); var query = IssueQuery.Create(searchText); var results = query.Execute(_indexService.Index); var elapsed = stopwatch.Elapsed; Task.Run(() => _telemetryClient.GetMetric("Search") .TrackValue(elapsed.TotalMilliseconds) ); if (isOpenIssuesQuery && _openIssuesResults is null) { _openIssuesResults = results; } return(results); }
/// <summary> /// Retrieves data for a specific Issue /// </summary> /// <param name="volumeId">ID of the Volume in which the Issue resides</param> /// <param name="issueNumber">Number of the Issue for which the retrieval is to be done</param> /// <returns>Issue object populated with data for the Issue indicated by the Volume ID and Issue Number</returns> public Issue GetIssue(int volumeId, int issueNumber) { string query = $"{_comicVineAddress}issues/?api_key={_apiKey}&format=json&filter=issue_number:{issueNumber},volume:{volumeId}"; IssueQuery issueQuery = Connection.ConnectAndRequestIssue(query); return(issueQuery.Issue); }
/// <summary> /// Connect to the ComicVine API and retrieve the results of a query based on an Issue /// </summary> /// <param name="url">URL to the Issue object within the API</param> /// <returns>IssueQuery object populated with search results</returns> public static IssueQuery ConnectAndRequestIssue(string url) { IssueQuery result = new IssueQuery(); HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url); using WebResponse webResponse = httpWebRequest.GetResponse(); using StreamReader streamReader = new StreamReader(webResponse.GetResponseStream() !); return(JsonConvert.DeserializeObject <IssueQuery>(Sanitize(streamReader.ReadToEnd()))); }
/// <summary> /// Retrieves data for a specific Issue /// </summary> /// <param name="issueId">ID of the Issue to retrieve</param> /// <returns>Issue object populated with data for the Issue indicated by the ID</returns> public Issue GetIssue(int issueId) { string query = null; query = $"{_comicVineAddress}issue/4000-{issueId}/?api_key={_apiKey}&format=json"; IssueQuery issueQuery = Connection.ConnectAndRequestIssue(query); return(issueQuery.Issue); }
public static CrawledIssueResults Execute(this IssueQuery query, CrawledIndex index) { var result = (HashSet <CrawledIssue>)null; foreach (var filter in query.Filters) { var next = Execute(index, filter); if (result is null) { result = next; } else { result.UnionWith(next); } } if (result is null) { return(CrawledIssueResults.Empty); } var sorts = query.Filters.SelectMany(f => f.Sort) .Distinct() .ToArray(); if (!sorts.Any()) { sorts = _defaultSort; } var groups = query.Filters.SelectMany(f => f.Groups) .Distinct() .Select(CrawledIssueGroupKey.Get) .ToArray(); if (!groups.Any()) { return(CrawledIssueResults.Create(result, sorts)); } var groupSorts = query.Filters.SelectMany(f => f.GroupSort) .Distinct() .ToArray(); if (!groupSorts.Any()) { groupSorts = _defaultGroupSort; } return(CrawledIssueResults.Create(result, sorts, groups, groupSorts)); }
public void OnGet() { Query = _issueManager.Load(Query); }
/// <summary> /// 添付ファイルのダウンロード処理 /// </summary> private async void Download() { this.IsBusy = true; Project selectedItem = null; switch (this.selected) { case "inactive": selectedItem = this.InactiveProjextsView.CurrentItem as Project; break; case "revival": selectedItem = this.RevivalProjextsView.CurrentItem as Project; break; case "death": selectedItem = this.DeathProjextsView.CurrentItem as Project; break; } await Task.Run(() => { if (selectedItem != null) { IssueCommunicator issue = new IssueCommunicator(this.SpaceName, this.APIKey); var count = issue.GetIssuesCount(selectedItem.Id); if (count > 0) { int index = 0; int down = 100; IEnumerable<Issue> list = new List<Issue>(); do { var param = new IssueQuery { ProjectIds = new List<int> { selectedItem.Id, }, ParentChild = 0, Attachment = true, SharedFile = false, Sort = Sort.Attachment, Offset = index, Count = 100, }; var issues = issue.GetIssues(param); list = list.Concat(issues); down = issues.Count(); index += down; } while (down >= 100); foreach (var item in list) { if (item.attachments.Count > 0) { foreach (var file in item.attachments) { var path = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var key = item.issueKey; var name = file.name; issue.DownloadAttachmentFile(path, key, name, item.id, file.id); } } } } } }); this.IsBusy = false; }
internal IEnumerable<Issues> findIssueReport(IssueQuery q, String issueGroup) { string constraint = " where upper(firstname) like :f ||'%' " + " and upper(lastname) like :l ||'%' " + " and alpha like :a ||'%' " + " and email like :e ||'%' " + " and ssn like :s ||'%' " + " and company like :c ||'%' " + " and class like :cl ||'%' "; String sql = "select i.id,i.type,i.complete,i.comments,i.midnid, m.alpha midnAlpha," + " i.dateinserted,i.datereview,i.visible, m.lastname ||', '||m.firstname||' '||m.ssn midnName, " + " m.company company ,i.admin, i.complete" + " from ISSUES i , MIDN m " + " where i.visible=1 and m.id=i.midnid and midnid in (select id from MIDN " + constraint + ") " + ""; string selectedIssue = q.selectedIssue; if (issueGroup != null) { switch (issueGroup) { case "Labs": sql += " and i.type in (select value from mm4vars where type='LAB_ISSUE_GRP' ) "; break; case "Optometry": sql += " and i.type in (select value from mm4vars where type='OPT_ISSUE_GRP') "; break; case "Radiology": sql += " and i.type in (select value from mm4vars where type='RAD_ISSUE_GRP') "; break; case "X-Ray": sql += " and i.type in (select value from mm4vars where type='XRAY_ISSUE_GRP') "; break; default: break; } } if (q.issueCreatedFrom != null & q.issueCreatedTo != null) { sql += " and trunc(i.dateinserted) between to_date('" + q.issueCreatedFrom + "') and to_date('" + q.issueCreatedTo + "') "; } if (q.issueReviewedFrom != null & q.issueReviewedTo != null) { sql += " and trunc(i.datereview) between to_date('" + q.issueReviewedFrom + "') and to_date('" + q.issueReviewedTo + "') "; } if (q.Complete != 999) { sql += " and i.complete = " + q.Complete; } string company = q.Company == 0 ? "" : q.Company.ToString(); var data = db.Database.SqlQuery<Issues>(sql, new OracleParameter(":f", q.FirstName.ToUpper()), new OracleParameter(":l", q.LastName.ToUpper()), new OracleParameter(":a", q.Alpha), new OracleParameter(":e", q.Email), new OracleParameter(":s", q.Ssn), new OracleParameter(":c", company), new OracleParameter(":cl", q.Class) ); return data; }
internal IEnumerable<Issues> findIssueReport(IssueQuery q) { string constraint = " where upper(firstname) like :f ||'%' " + " and upper(lastname) like :l ||'%' " + " and alpha like :a ||'%' " + " and (email like :e ||'%' or email is null)" + " and ssn like :s ||'%' " + " and (company like :c ||'%' or company is null )" + " and class like :cl ||'%' "; String sql = "select i.id,i.type,i.complete,i.comments,i.midnid, m.alpha midnAlpha, " + " i.dateinserted,i.datereview,i.visible, m.lastname||', '||m.firstname midnName, " + " m.company company ,i.admin, i.complete" + " from ISSUES i , MIDN m " + " where i.visible=1 and m.id=i.midnid and midnid in (select id from MIDN " + constraint + ") " + " and i.type like :i ||'%'"; string selectedIssue = q.selectedIssue; // if (q.selectedIssue != 0) // { // selectedIssue = q.selectedIssue.ToString(); // } if (q.rangetype !=null ){ if ( q.rangetype.Equals("gt")){ sql += " and trunc(i.dateinserted) < to_date('" + q.issueCreatedFrom + "') "; } if (q.rangetype.Equals("lt")) { sql += " and trunc(i.dateinserted) > to_date('" + q.issueCreatedFrom + "') "; } if (q.rangetype.Equals("in")) { sql += " and trunc(i.dateinserted) between to_date('" + q.issueCreatedFrom + "') and to_date('" + q.issueCreatedTo + "') "; } }else{ if (q.issueCreatedFrom != null & q.issueCreatedTo != null) { sql += " and trunc(i.dateinserted) between to_date('" + q.issueCreatedFrom + "') and to_date('" + q.issueCreatedTo + "') "; } if (q.issueReviewedFrom != null & q.issueReviewedTo != null) { sql += " and trunc(i.datereview) between to_date('" + q.issueReviewedFrom + "') and to_date('" + q.issueReviewedTo + "') "; } if (q.issueCreatedFrom != null & q.issueCreatedTo == null) { sql += " and trunc(i.dateinserted) > to_date('" + q.issueCreatedFrom + "') "; } if (q.issueReviewedFrom != null & q.issueReviewedTo == null) { sql += " and trunc(i.datereview) > to_date('" + q.issueReviewedFrom + "') "; } } if (q.Complete != 999) { sql += " and i.complete = " + q.Complete; } string company = q.Company == 0 ? "" : q.Company.ToString(); var data = db.Database.SqlQuery<Issues>(sql, new OracleParameter(":f", q.FirstName.ToUpper()), new OracleParameter(":l", q.LastName.ToUpper()), new OracleParameter(":a", q.Alpha), new OracleParameter(":e", q.Email), new OracleParameter(":s", q.Ssn), new OracleParameter(":c", company), new OracleParameter(":cl", q.Class), new OracleParameter(":i", selectedIssue) ); return data; }