Esempio n. 1
0
        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);
 }
Esempio n. 3
0
        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();
                }
            }
        }