public static List <TelemetryErrorData> GetErrorData(int Records) { List <TelemetryErrorData> ReturnedErrors = new List <TelemetryErrorData>(); using (SQLiteConnection Connection = new SQLiteConnection(ConnectionString)) { Connection.Open(); using (SQLiteCommand Command = new SQLiteCommand("SELECT Id, Type, Text, UserName, Project, Timestamp, Version, IpAddress FROM [Errors] ORDER BY Id DESC LIMIT @param1", Connection)) { Command.Parameters.AddWithValue("@param1", Records); using (SQLiteDataReader Reader = Command.ExecuteReader()) { while (Reader.Read()) { TelemetryErrorData Error = new TelemetryErrorData(); Error.Id = Reader.GetInt32(0); Enum.TryParse(Reader.GetString(1), true, out Error.Type); Error.Text = Reader.GetString(2); Error.UserName = Reader.GetString(3); Error.Project = Reader.IsDBNull(4) ? null : Reader.GetString(4); Error.Timestamp = Reader.GetDateTime(5); Error.Version = Reader.GetString(6); Error.IpAddress = Reader.GetString(7); ReturnedErrors.Add(Error); } } } } return(ReturnedErrors); }
public static void PostErrorData(TelemetryErrorData Data, string Version, string IpAddress) { using (SQLiteConnection Connection = new SQLiteConnection(ConnectionString)) { Connection.Open(); long?ProjectId = null; if (Data.Project != null) { ProjectId = TryInsertAndGetProject(Connection, Data.Project); } using (SQLiteCommand Command = new SQLiteCommand("INSERT INTO [Errors] (Type, Text, UserName, Project, Timestamp, Version, IpAddress, ProjectId) VALUES (@Type, @Text, @UserName, @Project, @Timestamp, @Version, @IpAddress, @ProjectId)", Connection)) { Command.Parameters.AddWithValue("@Type", Data.Type.ToString()); Command.Parameters.AddWithValue("@Text", Data.Text); Command.Parameters.AddWithValue("@UserName", Data.UserName); if (Data.Project == null) { Command.Parameters.AddWithValue("@Project", DBNull.Value); Command.Parameters.AddWithValue("@ProjectId", DBNull.Value); } else { Command.Parameters.AddWithValue("@Project", Data.Project); Command.Parameters.AddWithValue("@ProjectId", ProjectId.Value); } Command.Parameters.AddWithValue("@Timestamp", Data.Timestamp); Command.Parameters.AddWithValue("@Version", Version); Command.Parameters.AddWithValue("@IPAddress", IpAddress); Command.ExecuteNonQuery(); } } }
public void Post([FromBody] TelemetryErrorData Data, string Version, string IpAddress) { SqlConnector.PostErrorData(Data, Version, IpAddress); }