private IEnumerable <T> GetArrayByName <T>(RawIssue issue, string fieldName) { if (_fields.ContainsKey(fieldName) == false) { return(Enumerable.Empty <T>()); } var fieldId = _fields[fieldName].Id; return(issue.RawFields[fieldId].Select(i => i.Value <T>())); }
private JiraIssue Convert(RawIssue issue) { return(new JiraIssue { Key = issue.Key, Project = issue.BuiltInFields.Project.Name, Summary = issue.BuiltInFields.Summary, Priority = issue.BuiltInFields.Priority.Name, StoryPoints = (int)(GetFieldByName <float?>(issue, "Story Points") ?? 0), Subtasks = issue.BuiltInFields.Subtasks.Count(), Created = issue.BuiltInFields.Created, Resolved = issue.BuiltInFields.ResolutionDate ?? DateTime.MinValue, Status = issue.BuiltInFields.Status.Name, Description = issue.BuiltInFields.Description, Assignee = (issue.BuiltInFields.Assignee ?? RawUserInfo.EmptyInfo).DisplayName, Reporter = (issue.BuiltInFields.Reporter ?? RawUserInfo.EmptyInfo).DisplayName, CategoryColor = Colors.White, BuiltInFields = issue.BuiltInFields }); }
private JiraIssue Convert(RawIssue issue) { return(new JiraIssue { Key = issue.Key, Project = issue.BuiltInFields.Project.Name, Summary = issue.BuiltInFields.Summary, Priority = issue.BuiltInFields.Priority.Name, StoryPoints = GetFieldByName <float?>(issue, "Story Points") ?? 0, Subtasks = issue.BuiltInFields.Subtasks.Count(), Created = issue.BuiltInFields.Created, Resolved = issue.BuiltInFields.ResolutionDate, Status = issue.BuiltInFields.Status.Name, Description = issue.BuiltInFields.Description, Assignee = (issue.BuiltInFields.Assignee ?? RawUserInfo.EmptyInfo).DisplayName, Reporter = (issue.BuiltInFields.Reporter ?? RawUserInfo.EmptyInfo).DisplayName, BuiltInFields = issue.BuiltInFields, EpicLink = GetFieldByName <string>(issue, "Epic Link") ?? "", SprintIds = (GetArrayByName <string>(issue, "Sprint")) .Select(i => int.Parse(i.Substring(i.IndexOf('=') + 1, i.IndexOf(',') - i.IndexOf('=') - 1))), Changelog = issue.Changelog.Histories }); }
public void saveIssue(Issue issue) { List <Issue> result; RawIssue raw; Filter filter; try { filter = new Filter(); filter.Fields.Add(new Field()); filter.Fields.First().FieldName = "id"; filter.Fields.First().Value = issue.id.ToString(); result = getIssues(filter); if (result.Count > 0) { saveIssueHistory(new IssueHistory(result.Last())); } raw = new RawIssue(issue); command = "INSERT OR REPLACE INTO issues(\n"; command += "'id',\n"; command += "'number',\n"; command += "'title',\n"; command += "'assignee',\n"; command += "'type',\n"; command += "'priority',\n"; command += "'state',\n"; command += "'component',\n"; command += "'milestone',\n"; command += "'version',\n"; command += "'reporter',\n"; command += "'created_on',\n"; command += "'updated_on',\n"; command += "'raw')\n"; command += "values (\n"; command += "@id,\n"; command += "@number,\n"; command += "@title,\n"; command += "@assignee,\n"; command += "@type,\n"; command += "@priority,\n"; command += "@state,\n"; command += "@component,\n"; command += "@milestone,\n"; command += "@version,\n"; command += "@reporter,\n"; command += "@created_on,\n"; command += "@updated_on,\n"; command += "@raw)\n";; parameters = new List <clsDataBaseParametes>(); parameters.Add(new clsDataBaseParametes("@id", raw.id.ToString())); parameters.Add(new clsDataBaseParametes("@number", raw.number)); parameters.Add(new clsDataBaseParametes("@title", raw.title)); parameters.Add(new clsDataBaseParametes("@assignee", raw.assignee)); parameters.Add(new clsDataBaseParametes("@type", raw.kind)); parameters.Add(new clsDataBaseParametes("@priority", raw.priority)); parameters.Add(new clsDataBaseParametes("@state", raw.state)); parameters.Add(new clsDataBaseParametes("@component", raw.component)); parameters.Add(new clsDataBaseParametes("@milestone", raw.milestone)); parameters.Add(new clsDataBaseParametes("@version", raw.version)); parameters.Add(new clsDataBaseParametes("@reporter", raw.reporter)); parameters.Add(new clsDataBaseParametes("@created_on", raw.created_on.ToString("yyyy-MM-ddTHH:mm:ss"))); parameters.Add(new clsDataBaseParametes("@updated_on", raw.updated_on.ToString("yyyy-MM-ddTHH:mm:ss"))); parameters.Add(new clsDataBaseParametes("@raw", raw.raw)); dataBase.sbExecute(command, parameters); dataBase.sbCommit(); } catch (DataBaseException exdb) { throw new Exception("Database error: " + exdb.Code + " - " + exdb.Message); } catch (Exception ex) { throw ex; } }