public List <TimeInterval> GetTimeIntervals()
 {
     using var command   = _connection.CreateCommand();
     command.Connection  = _connection;
     command.CommandText =
         $"select {TimeInterval.GetIdColumnName()}, {TimeInterval.GetNameColumnName()}, {TimeInterval.GetTypeColumnName()} " +
         $"from {TimeInterval.GetTableName()};";
     Console.WriteLine("Execute SQL: " + command.CommandText);
     return(Factory.CreateTimeIntervalList(command.ExecuteReader()));
 }
 public TimeInterval GetTimeInterval(TimeIntervalType timeIntervalType)
 {
     using var command   = _connection.CreateCommand();
     command.Connection  = _connection;
     command.CommandText =
         $"select {TimeInterval.GetIdColumnName()}, {TimeInterval.GetNameColumnName()}, {TimeInterval.GetTypeColumnName()} " +
         $"from {TimeInterval.GetTableName()} " +
         $"where {TimeInterval.GetTypeColumnName()} = :enum_number;";
     command.Parameters.AddWithValue("enum_number", (int)timeIntervalType);
     Console.WriteLine("Execute SQL: " + command.CommandText);
     return(Factory.CreateTimeInterval(command.ExecuteReader()));
 }
 public void SaveOrUpdate(TimeInterval timeInterval)
 {
     if (IsTimeIntervalAlreadySaved(timeInterval))
     {
         Update(timeInterval);
     }
     else
     {
         using var command   = _connection.CreateCommand();
         command.Connection  = _connection;
         command.CommandText =
             $"insert into {TimeInterval.GetTableName()}({TimeInterval.GetNameColumnName()}, {TimeInterval.GetTypeColumnName()}) " +
             "values (:name, :type);";
         command.Parameters.AddWithValue("name", timeInterval.Name);
         command.Parameters.AddWithValue("type", (int)timeInterval.Type);
         Console.WriteLine("Execute SQL: " + command.CommandText);
         command.ExecuteNonQuery();
     }
 }
        private void Update(TimeInterval timeInterval)
        {
            var id = timeInterval.Id;

            if (id == 0)
            {
                id = GetTimeInterval(timeInterval.Type).Id;
            }

            using var command   = _connection.CreateCommand();
            command.Connection  = _connection;
            command.CommandText =
                $"update {TimeInterval.GetTableName()} " +
                $"set {TimeInterval.GetNameColumnName()} = :new_name, {TimeInterval.GetTypeColumnName()} = :new_enum_number " +
                "where id = :id;";
            command.Parameters.AddWithValue("new_name", timeInterval.Name);
            command.Parameters.AddWithValue("new_enum_number", (int)timeInterval.Type);
            command.Parameters.AddWithValue("id", id);
            Console.WriteLine("Execute SQL: " + command.CommandText);
            command.ExecuteNonQuery();
        }