public static bool Equals(object value1, string value2) { return(value1 != null && value1 switch { string actualStringValue => string.Equals(actualStringValue, value2, StringComparison.InvariantCultureIgnoreCase), DateTime actualDateValue => actualDateValue == FilterParseHelpers.ParseJiraDate(value2), int actualIntValue => actualIntValue == int.Parse(value2, CultureInfo.InvariantCulture), decimal actualDecimalValue => actualDecimalValue == decimal.Parse(value2, CultureInfo.InvariantCulture), float actualFloatValue => Math.Abs(actualFloatValue - float.Parse(value2, CultureInfo.InvariantCulture)) < 0.0001, double actualDoubleValue => Math.Abs(actualDoubleValue - double.Parse(value2, CultureInfo.InvariantCulture)) < 0.0001, long actualLongValue => actualLongValue == long.Parse(value2), JiraStatus actualStatusValue => actualStatusValue == value2, JiraIssueReference actualIssueReferenceValue => actualIssueReferenceValue == value2, JiraCustomFieldOption actualOptionValue => actualOptionValue == value2, JiraPriority actualPriorityValue => actualPriorityValue == value2, JiraProject actualProjectValue => actualProjectValue == value2, JiraUser actualUserValue => actualUserValue == value2, JiraIssueType actualIssueJiraType => actualIssueJiraType == value2, IEnumerable actualEnumerableValue => actualEnumerableValue.Cast <object>().Any(x => Equals(x, value2)), _ => false });
public Workflow(JiraIssueType issueType, JiraStatus defaultStatus, Dictionary <string, JiraTransition[]> transitions, Dictionary <string, Func <JiraIssue, bool> > conditions) { this.transitions = transitions; this.conditions = conditions; IssueType = issueType; DefaultStatus = defaultStatus; }
public IWorkflowBuilder <TIssue> Status(JiraStatus status, IEnumerable <JiraTransition> transitions) { if (this.transitions.ContainsKey(status.Id)) { throw new InvalidOperationException( $"transitions' set is already defined, status name: [{status.Name}], id: [{status.Id}]"); } this.transitions.Add(status.Id, transitions.ToArray()); return(this); }
public async Task <IList <JiraStatus> > GetJiraStatusesAsync() { var jiraStatusList = new List <JiraStatus>(); var jira = GetJiraClient(); var statuses = await jira.Statuses.GetStatusesAsync(); foreach (var status in statuses.ToList()) { var jiraStatus = new JiraStatus() { Id = status.Id, Name = status.Name, Description = status.Description, IconUrl = status.IconUrl }; jiraStatusList.Add(jiraStatus); } return(jiraStatusList); }
public JiraTransition[] GetTransitions(JiraStatus status) { return(transitions.TryGetValue(status.Id, out var items) ? items : WorkflowCache.emptyTransitions); }
public IWorkflowBuilder <TIssue> DefaultStatus(JiraStatus status) { defaultStatus = status; return(this); }