public static string GetGridUrl(FixFor fixFor, Case parentCase, Status status) { var url = UserContext.FogBugzUrl + "/default.asp?sView=grid-outline"; if (fixFor != null) url = AddParamToUrl(url, "ixFixFor", fixFor.Index); if (parentCase != null) url = AddParamToUrl(url, "searchFor", String.Format("parent=\"{0}\"", parentCase.Index)); if (status != null) url = AddParamToUrl(url, "ixStatus", status.Index); return url; }
public static IHtmlString FogBugzCasesLink(this HtmlHelper helper, string caption, FogBugzCasesLinkParams parameters, object attributes = null) { var queryParts = new List<string>(); var parametersStatus = String.Empty; if (parameters.Status.HasValue) parametersStatus = parameters.Status.ToString(); Status status = FogBugzGateway.GetStatuses().FirstOrDefault(s => s.Index == parameters.StatusId || s.Name == parametersStatus); if (status == null && !String.IsNullOrEmpty(parametersStatus)) { status = new Status {Name = parametersStatus}; } if (parameters.PersonName == Person.ClosedUser.Name) { // if closed user if (parameters.Status.HasValue && parameters.Status.Value == CaseStatus.Closed || !parameters.Status.HasValue) { queryParts.Add(@"Status:""Closed"""); } } else { // if any other user, including no user specified if (!string.IsNullOrEmpty(parameters.PersonName)) queryParts.Add(string.Format(@"AssignedTo:""{0}""", parameters.PersonName)); if (parameters.StatusId.HasValue && status != null || status != null) { var statusQuery = String.Format(@"Status:""{0}""", status.Name); queryParts.Add(statusQuery); } if (status != null && status.Name == "Closed" || parametersStatus == "Closed") { queryParts.Add(@"Status:""Closed"""); } } if (parameters.HasEstimate.HasValue) { if (parameters.HasEstimate == true) { queryParts.Add(@"EstimateCurrent:""*"""); } else if (parameters.HasEstimate == false) { queryParts.Add(@"-EstimateCurrent:""*"""); } } if (parameters.PriorityId.HasValue) queryParts.Add(string.Format(@"Priority:""{0}""", parameters.PriorityId.Value)); if (!String.IsNullOrEmpty(parameters.Tag)) { queryParts.Add(String.Format(@"Tag:""{0}""", parameters.Tag)); } var query = string.Join(" ", queryParts); return helper.FogBugzCasesLink(caption, parameters.ProjectId, parameters.MilestoneId, parameters.SubProjectParentCaseId, query, attributes, parameters.HasChildren); }