public EditJiraWindow(JIRAItem existing = null) { InitializeComponent(); vm = new EditJiraWindowViewModel(this, existing); DataContext = vm; }
public void UpsertJIRA(JIRAItem jira) { if (!openJIRAs.Contains(jira)) { throw new NotSupportedException(); } }
private string ConvertToString(JIRAItem j) { return(string.Join(Delim, j.JiraKey, ToString(j.CreatedDate), ToString(j.DoneDate), GetBoard(j), ToString(j.GetAuxField(AuxFields.Epic)), j.Title, ToString(j.ArchivedDate != null ? null : j.Status) //Don't show status for archived )); }
public void UpsertJIRA(JIRAItem jira) { int?jiraId = null; string cmd; if (jira.ID == null) //New { cmd = string.Format("insert into {0} values(NULL,{1},{2},{3},{4},'{5}','{6}','{7}',{8},{9})", Jiras, ToStringOrNull(jira.Notes), ToStringOrNull(jira.ArchivedDate), ToStringOrNull(jira.DoneDate), //3 (jira.BoardId == null ? NULL : jira.BoardId.ToString()), SQLUtils.ToSQLDateTime(jira.CreatedDate), SQLUtils.SQLEncode(jira.Title), SQLUtils.SQLEncode(jira.JiraKey), ToStringOrNull(jira.SprintId), ToStringOrNull(jira.Status) ); } else //Update { StringBuilder sb = new StringBuilder(); sb.AppendLine("update {0} set notes={1}, archived_date={2}, done_date={3}, board_id={4},"); sb.AppendLine("created_date='{5}', title='{6}', jira_key='{7}', sprint_id={8}, status={9}"); sb.AppendLine("where id = {10}"); var str = sb.ToString(); cmd = string.Format(str, Jiras, ToStringOrNull(jira.Notes), ToStringOrNull(jira.ArchivedDate), ToStringOrNull(jira.DoneDate), jira.BoardId == null ? NULL : jira.BoardId.ToString(), SQLUtils.ToSQLDateTime(jira.CreatedDate), SQLUtils.SQLEncode(jira.Title), SQLUtils.SQLEncode(jira.JiraKey), ToStringOrNull(jira.SprintId), ToStringOrNull(jira.Status), jira.ID.Value ); jiraId = jira.ID.Value; } client.ExecuteNonQuery(cmd); if (jiraId == null) { jiraId = SQLUtils.GetLastInsertRow(client); } UpsertAux(jiraId.Value, jira.GetAuxFields()); }
public EditJiraWindowViewModel(EditJiraWindow editJiraWindow, JIRAItem existing) { this.editJiraWindow = editJiraWindow; this.existing = existing; Cancelled = true; LoadView(existing); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { JIRAItem jira = value as JIRAItem; if (jira == null) { return(null); } AuxFields aux = (AuxFields)Enum.Parse(typeof(AuxFields), (string)parameter); return(jira.GetAuxField(aux)); }
private JIRAItem ParseJiraItem(DataRow r) { JIRAItem jira = new JIRAItem(); jira.ID = Convert.ToInt32(r["id"]); if (!SQLUtils.IsNull(r["archived_date"])) { jira.ArchivedDate = SQLUtils.ToDateTime(r["archived_date"].ToString()); } if (!SQLUtils.IsNull(r["board_id"])) { jira.BoardId = Convert.ToInt32(r["board_id"]); } jira.CreatedDate = SQLUtils.ToDateTime(r["created_date"].ToString()); if (!SQLUtils.IsNull(r["done_date"])) { jira.DoneDate = SQLUtils.ToDateTime(r["done_date"].ToString()); } jira.ImportedDate = jira.CreatedDate; //TODO: Track or remove? Need to add to DB jira.JiraKey = r["jira_key"].ToString(); if (!SQLUtils.IsNull(r["notes"])) { jira.Notes = r["notes"].ToString(); } if (!SQLUtils.IsNull(r["sprint_id"])) { jira.SprintId = r["sprint_id"].ToString(); } jira.Status = r["status"].ToString(); jira.Title = r["title"].ToString(); //Aux Dictionary <AuxFields, object> aux = GetAuxFields(jira.ID.Value); jira.SetAuxField(aux); return(jira); }
private void LoadView(JIRAItem existing) { if (existing != null) { JiraKey = existing.JiraKey; Notes = existing.Notes; SprintId = existing.SprintId; Status = existing.Status; JiraTitle = existing.Title; IsDone = existing.DoneDate != null; IsArchived = existing.ArchivedDate != null; Epic = existing.GetAuxField(AuxFields.Epic) as string; TimeEstimate = existing.GetAuxField(AuxFields.TimeEstimate) as string; PullRequest = existing.GetAuxField(AuxFields.PullRequest) as string; } }
private string GetBoard(JIRAItem j) { if (j.DoneDate != null) { if (j.ArchivedDate != null) { return("Archived"); } else { return(AppStateManager.ReadyForRelease); } } else if (j.BoardId == null) { return(AppStateManager.NotStarted); } else { return(BoardMap[j.BoardId.Value]); } }
public JIRAItemViewModel(JIRAItem item) { this.item = item; }