public QueryResult GetRallyItemByQuery(RallySlackMapping map, List <string> requestFields, Query query, string artifectName = "") { var api = _pool.GetApi(map.UserName, map.Password); if (api == null) { throw new AuthenticationException("Cannot verify rally login"); } Request request; if (string.IsNullOrEmpty(artifectName)) { request = new Request(); } else { request = new Request(artifectName); } request.Project = "/project/" + map.ProjectId; request.Workspace = "/workspace/" + map.WorkspaceId; //request.Fetch = new List<string>() { "Name", "Description", "FormattedID" }; request.Fetch = requestFields; request.Query = query; QueryResult queryResult = api.Query(request); return(queryResult); }
public List <dynamic> GetKanban(RallySlackMapping map) { RallyRestApi restApi = _pool.GetApi(map.UserName, map.Password); var queryType = "Iteration"; var query = new Query(string.Format("(StartDate <= {0})", DateTime.Now.ToString("o"))); var requestFields = new List <string>() { "Name", "StartDate", "Project", "EndDate" }; QueryResult queryResult = GetRallyItemByQuery(map, requestFields, query, queryType); string iterationName; if (queryResult.Results.Any()) { //var iter = queryResult.Results.Select(e => new Iteration(e)).Where(r => r.StartDate <= DateTime.Now).OrderByDescending(r => r.StartDate).First(); var iter = queryResult.Results.Select( e => new { Name = e["Name"], StartDate = e["StartDate"] == null ? DateTime.MinValue : DateTime.Parse(e["StartDate"]), EndDate = e["EndDate"] == null ? DateTime.MaxValue : DateTime.Parse(e["EndDate"]) }).OrderByDescending(p => p.StartDate).First(); iterationName = iter.Name; } else { return(null); } //User stories queryType = "hierarchicalrequirement"; query = new Query("Iteration.Name", Query.Operator.Equals, iterationName); requestFields = new List <string>() { "Name", "ObjectID", "FormattedID", "Description", "Blocked", "BlockedReason", "Owner" }; requestFields.Add(map.KanbanSortColumn); var result0 = GetRallyItemByQuery(map, requestFields, query, queryType); //Defects queryType = "defect"; var result1 = GetRallyItemByQuery(map, requestFields, query, queryType); var result = result0.Results.ToList(); result.AddRange(result1.Results); return(result); }
public QueryResult GetRallyItemById(RallySlackMapping map, string formattedId) { var queryType = "hierarchicalrequirement"; if (formattedId.StartsWith("de", StringComparison.InvariantCultureIgnoreCase)) { queryType = "defect"; } var query = new Query("FormattedID", Query.Operator.Equals, formattedId); var requestFields = new List <string>() { "Name", "Description", "FormattedID" }; return(GetRallyItemByQuery(map, requestFields, query, queryType)); }