Пример #1
0
 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
     });
Пример #2
0
 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;
 }
Пример #3
0
 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);
 }
Пример #4
0
        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);
        }
Пример #5
0
 public JiraTransition[] GetTransitions(JiraStatus status)
 {
     return(transitions.TryGetValue(status.Id, out var items)
         ? items
         : WorkflowCache.emptyTransitions);
 }
Пример #6
0
 public IWorkflowBuilder <TIssue> DefaultStatus(JiraStatus status)
 {
     defaultStatus = status;
     return(this);
 }