public void AddUniqueIssue(IssueRequiredFieldsMap issue)
 {
     if (Issues == null)
     {
         Issues = new List<IssueRequiredFieldsMap>();
     }
     var findIndex = Issues.FindIndex(i => String.Equals(i.IssueType.Name, issue.IssueType.Name, StringComparison.OrdinalIgnoreCase));
     if (findIndex == -1)
     {
         Issues.Add(issue);
     }
     else
     {
         Issues[findIndex] = issue;
     }
 }
        public void AddUniqueIssue(IssueRequiredFieldsMap issue)
        {
            if (Issues == null)
            {
                Issues = new List <IssueRequiredFieldsMap>();
            }
            var findIndex = Issues.FindIndex(i => String.Equals(i.IssueType.Name, issue.IssueType.Name, StringComparison.OrdinalIgnoreCase));

            if (findIndex == -1)
            {
                Issues.Add(issue);
            }
            else
            {
                Issues[findIndex] = issue;
            }
        }
 private bool GetRequiredFieldValue(ProjectIssueRequiredFieldsMap projectMap)
 {
     if (CurrentAssignProject != null && JiraOperator != null)
     {
         var waitingForm =
             new FormWaiting(
                 new Task <object>(
                     () =>
         {
             try
             {
                 return((object)JiraOperator.GetIssueCreateMeta(CurrentAssignProject.ID,
                                                                CurrentSelectedIssueType.Name));
             }
             catch (Exception)
             {
                 return(null);
             }
         }));
         if (waitingForm.ShowDialog() == DialogResult.OK)
         {
             var meta = waitingForm.Result as JiraCreateIssueMeta;
             if (meta != null && meta.IssueTypes != null)
             {
                 var currentMeta = meta.IssueTypes.FirstOrDefault();
                 if (currentMeta != null)
                 {
                     var issue    = new IssueRequiredFieldsMap();
                     var required =
                         currentMeta.Fields.Where(
                             m => String.IsNullOrWhiteSpace(m.Value.Schema.System) && m.Value.Required).ToDictionary(
                             pair => pair.Key, pair => pair.Value);
                     var requiredSystemFields = currentMeta.Fields.Where(
                         m => !String.IsNullOrWhiteSpace(m.Value.Schema.System)).ToDictionary(
                         pair => pair.Key, pair => pair.Value);
                     if (required.Keys.Count > 0)
                     {
                         var requireField = new FormReqiuredFields(required);
                         if (requireField.ShowDialog() == DialogResult.OK)
                         {
                             issue.IssueType = new JiraIssueType {
                                 Name = CurrentSelectedIssueType.Name
                             };
                             issue.RequiredFieldsJsonValue = requireField.FieldsValues;
                             issue.SystemField             = requiredSystemFields.Values.ToList();
                             projectMap.AddUniqueIssue(issue);
                             return(true);
                         }
                     }
                     else
                     {
                         issue.IssueType = new JiraIssueType {
                             Name = CurrentSelectedIssueType.Name
                         };
                         issue.NoRequiredFields = true;
                         issue.SystemField      = requiredSystemFields.Values.ToList();
                         projectMap.AddUniqueIssue(issue);
                         return(true);
                     }
                 }
             }
         }
     }
     return(false);
 }