Skip to content

Commit 32b7a5c

Browse files
committed
first commit
0 parents  commit 32b7a5c

26 files changed

Lines changed: 1153 additions & 0 deletions

.gitignore

Lines changed: 484 additions & 0 deletions
Large diffs are not rendered by default.

consumer/.vscode/launch.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "consumer.csproj",
5+
"type": "coreclr",
6+
"request": "launch",
7+
"program": "/home/iliass/Projects/rabbitMQ/consumer/bin/Debug/net8.0/consumer.dll",
8+
"cwd": "${workspaceFolder}",
9+
"console": "internalConsole",
10+
"stopAtEntry": false,
11+
"preLaunchTask": "Build: consumer.csproj",
12+
"presentation": {
13+
"group": "ionide",
14+
"hidden": false
15+
}
16+
}
17+
]
18+
}

consumer/Data/DataContext.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using Microsoft.EntityFrameworkCore;
2+
using Microsoft.Extensions.Configuration;
3+
using Consumer.Entities;
4+
5+
namespace Consumer.Data;
6+
public class DataContext: DbContext
7+
{
8+
protected readonly IConfiguration _configuration;
9+
10+
public DataContext(IConfiguration configuration)
11+
{
12+
_configuration = configuration;
13+
}
14+
15+
protected override void OnConfiguring(DbContextOptionsBuilder options)
16+
{
17+
// connect to postgres with connection string from app settings
18+
19+
var serviceConnection = _configuration.GetSection("serviceConnection");
20+
var connection = serviceConnection.GetValue<string>("PostgresConnection");
21+
options.UseNpgsql(connection);
22+
}
23+
24+
protected override void OnModelCreating(ModelBuilder modelBuilder)
25+
{
26+
27+
}
28+
29+
public DbSet<MessageEntity> Messages {get; set;}
30+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
namespace Consumer.Entities;
2+
3+
public class MessageEntity
4+
{
5+
public int Id { get; set; }
6+
public string Message { get; set; }
7+
public DateTime CreatedAt { get; set; }
8+
}

consumer/Mappers/IMessageMapper.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using Consumer.Entities;
2+
using Consumer.Models;
3+
namespace Consumer.Mappers
4+
{
5+
public interface IMessageMapper
6+
{
7+
MessageModel MapToModel(MessageEntity message);
8+
MessageEntity MapToEntity(MessageModel message);
9+
}
10+
}

consumer/Mappers/MessageMapper.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Consumer.Entities;
2+
using Consumer.Models;
3+
namespace Consumer.Mappers
4+
{
5+
public class MessageMapper : IMessageMapper
6+
{
7+
public MessageModel MapToModel(MessageEntity message)
8+
{
9+
return new MessageModel
10+
{
11+
Id = message.Id,
12+
Message = message.Message,
13+
CreatedAt = message.CreatedAt
14+
};
15+
}
16+
17+
public MessageEntity MapToEntity(MessageModel message)
18+
{
19+
return new MessageEntity
20+
{
21+
Id = message.Id,
22+
Message = message.Message,
23+
CreatedAt = message.CreatedAt
24+
};
25+
}
26+
}
27+
}

consumer/Migrations/20231221131056_firstMigration.Designer.cs

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using Microsoft.EntityFrameworkCore.Migrations;
3+
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
4+
5+
#nullable disable
6+
7+
namespace consumer.Migrations
8+
{
9+
/// <inheritdoc />
10+
public partial class firstMigration : Migration
11+
{
12+
/// <inheritdoc />
13+
protected override void Up(MigrationBuilder migrationBuilder)
14+
{
15+
migrationBuilder.CreateTable(
16+
name: "Messages",
17+
columns: table => new
18+
{
19+
Id = table.Column<int>(type: "integer", nullable: false)
20+
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
21+
Message = table.Column<string>(type: "text", nullable: false),
22+
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
23+
},
24+
constraints: table =>
25+
{
26+
table.PrimaryKey("PK_Messages", x => x.Id);
27+
});
28+
}
29+
30+
/// <inheritdoc />
31+
protected override void Down(MigrationBuilder migrationBuilder)
32+
{
33+
migrationBuilder.DropTable(
34+
name: "Messages");
35+
}
36+
}
37+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// <auto-generated />
2+
using System;
3+
using Consumer.Data;
4+
using Microsoft.EntityFrameworkCore;
5+
using Microsoft.EntityFrameworkCore.Infrastructure;
6+
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
7+
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
8+
9+
#nullable disable
10+
11+
namespace consumer.Migrations
12+
{
13+
[DbContext(typeof(DataContext))]
14+
partial class DataContextModelSnapshot : ModelSnapshot
15+
{
16+
protected override void BuildModel(ModelBuilder modelBuilder)
17+
{
18+
#pragma warning disable 612, 618
19+
modelBuilder
20+
.HasAnnotation("ProductVersion", "8.0.0")
21+
.HasAnnotation("Relational:MaxIdentifierLength", 63);
22+
23+
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
24+
25+
modelBuilder.Entity("Consumer.Entities.MessageEntity", b =>
26+
{
27+
b.Property<int>("Id")
28+
.ValueGeneratedOnAdd()
29+
.HasColumnType("integer");
30+
31+
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
32+
33+
b.Property<DateTime>("CreatedAt")
34+
.HasColumnType("timestamp with time zone");
35+
36+
b.Property<string>("Message")
37+
.IsRequired()
38+
.HasColumnType("text");
39+
40+
b.HasKey("Id");
41+
42+
b.ToTable("Messages");
43+
});
44+
#pragma warning restore 612, 618
45+
}
46+
}
47+
}

consumer/Models/MessageModel.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Consumer.Models
2+
{
3+
public class MessageModel
4+
{
5+
public int Id { get; set; }
6+
public string Message { get; set; }
7+
public DateTime CreatedAt { get; set; }
8+
}
9+
}

0 commit comments

Comments
 (0)