public static void UpdateIssue(long IssueId, IssueUpdateData Issue) { using (SQLiteConnection Connection = new SQLiteConnection(SqlConnector.ConnectionString)) { Connection.Open(); using (SQLiteCommand Command = new SQLiteCommand(Connection)) { List <string> Columns = new List <string>(); List <string> Values = new List <string>(); if (Issue.Summary != null) { Columns.Add("Summary"); Values.Add("@Summary"); Command.Parameters.AddWithValue("@Summary", SanitizeText(Issue.Summary, IssueSummaryMaxLength)); } if (Issue.Details != null) { Columns.Add("Details"); Values.Add("@Details"); Command.Parameters.AddWithValue("@Details", SanitizeText(Issue.Details, IssueDetailsMaxLength)); } if (Issue.Owner != null) { Columns.Add("OwnerId"); Values.Add("@OwnerId"); Command.Parameters.AddWithValue("OwnerId", FindOrAddUserId(Issue.Owner, Connection)); } if (Issue.NominatedBy != null) { Columns.Add("NominatedById"); Values.Add("@NominatedById"); Command.Parameters.AddWithValue("NominatedById", FindOrAddUserId(Issue.NominatedBy, Connection)); } if (Issue.Acknowledged.HasValue) { Columns.Add("AcknowledgedAt"); Values.Add(Issue.Acknowledged.Value? "DATETIME('now')" : "NULL"); } if (Issue.FixChange.HasValue) { Columns.Add("FixChange"); Values.Add("@FixChange"); Command.Parameters.AddWithValue("FixChange", Issue.FixChange.Value); } if (Issue.Resolved.HasValue) { Columns.Add("ResolvedAt"); Values.Add(Issue.Resolved.Value? "DATETIME('now')" : "NULL"); } Command.CommandText = String.Format("UPDATE [Issues] SET ({0}) = ({1}) WHERE Id = @IssueId", String.Join(", ", Columns), String.Join(", ", Values)); Command.Parameters.AddWithValue("@IssueId", IssueId); Command.ExecuteNonQuery(); } } }
public void Put(long id, IssueUpdateData Issue) { SqlConnector.UpdateIssue(id, Issue); }
public static void UpdateIssue(long IssueId, IssueUpdateData Issue) { using (MySqlConnection Connection = new MySqlConnection(SqlConnector.ConnectionString)) { Connection.Open(); using (MySqlCommand Command = Connection.CreateCommand()) { List <string> Columns = new List <string>(); List <string> Values = new List <string>(); if (Issue.Summary != null) { Columns.Add("Summary"); Values.Add("@Summary"); Command.Parameters.AddWithValue("@Summary", SanitizeText(Issue.Summary, IssueSummaryMaxLength)); } if (Issue.Owner != null) { Columns.Add("OwnerId"); Values.Add("@OwnerId"); Command.Parameters.AddWithValue("OwnerId", FindOrAddUserId(Issue.Owner, Connection)); } if (Issue.NominatedBy != null) { Columns.Add("NominatedById"); Values.Add("@NominatedById"); Command.Parameters.AddWithValue("NominatedById", FindOrAddUserId(Issue.NominatedBy, Connection)); } if (Issue.Acknowledged.HasValue) { Columns.Add("AcknowledgedAt"); Values.Add(Issue.Acknowledged.Value? "UTC_TIMESTAMP()" : "NULL"); } if (Issue.FixChange.HasValue) { Columns.Add("FixChange"); Values.Add("@FixChange"); Command.Parameters.AddWithValue("FixChange", Issue.FixChange.Value); } if (Issue.Resolved.HasValue) { Columns.Add("ResolvedAt"); Values.Add(Issue.Resolved.Value? "UTC_TIMESTAMP()" : "NULL"); } StringBuilder CommandText = new StringBuilder("UPDATE ugs_db.Issues SET "); for (int idx = 0; idx < Columns.Count; idx++) { CommandText.Append(String.Format("{0}={1}", Columns[idx], Values[idx])); if (idx != Columns.Count - 1) { CommandText.Append(","); } } CommandText.Append(" WHERE Id = @IssueId"); Command.CommandText = CommandText.ToString(); Command.Parameters.AddWithValue("@IssueId", IssueId); Command.ExecuteNonQuery(); } } }