netcore-blueprint 1.0.24 → 1.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BlueprintTemplate/Blueprint.API/{Controllers → AsyncControllers}/UserControllerAsync.cs +2 -2
- package/BlueprintTemplate/Blueprint.API/Blueprint.API.csproj +0 -1
- package/BlueprintTemplate/Blueprint.API/Controllers/UserController.cs +2 -1
- package/BlueprintTemplate/Blueprint.API/Program.cs +2 -1
- package/BlueprintTemplate/Blueprint.API/appsettings.json +1 -1
- package/BlueprintTemplate/Blueprint.Core/Blueprint.Core.csproj +1 -0
- package/BlueprintTemplate/Blueprint.Core/Dtos/Requests/BaseRequestDto.cs +7 -7
- package/BlueprintTemplate/Blueprint.Core/Dtos/Requests/UserRequestDto.cs +2 -4
- package/BlueprintTemplate/Blueprint.Core/Dtos/Responses/BaseResponseDto.cs +8 -11
- package/BlueprintTemplate/Blueprint.Core/Dtos/Responses/UserResponseDto.cs +1 -2
- package/BlueprintTemplate/Blueprint.Core/Entities/BaseEntity.cs +6 -6
- package/BlueprintTemplate/Blueprint.Core/Entities/Category.cs +3 -1
- package/BlueprintTemplate/Blueprint.Core/Entities/Product.cs +4 -5
- package/BlueprintTemplate/Blueprint.Core/Interfaces/SPI/IRepositoryFactory.cs +0 -1
- package/BlueprintTemplate/Blueprint.Core/Interfaces/SPI/IUserInfra.cs +2 -2
- package/BlueprintTemplate/Blueprint.Infra/Blueprint.Infra.csproj +4 -1
- package/BlueprintTemplate/Blueprint.Infra/Database/DbInitializer.cs +63 -63
- package/BlueprintTemplate/Blueprint.Infra/Migrations/{20250401143459_InitialCreate.Designer.cs → 20250405235602_InitialCreate.Designer.cs} +98 -89
- package/BlueprintTemplate/Blueprint.Infra/Migrations/20250405235602_InitialCreate.cs +154 -0
- package/BlueprintTemplate/Blueprint.Infra/Migrations/MyDbContextModelSnapshot.cs +97 -88
- package/BlueprintTemplate/Blueprint.Infra/Services/{MongoItemInfra.cs → Mongo/MongoItemInfra.cs} +3 -3
- package/BlueprintTemplate/Blueprint.Infra/Services/{MongoUserInfra.cs → Mongo/MongoUserInfra.cs} +2 -3
- package/BlueprintTemplate/Blueprint.Infra/Services/{MySQLItemInfra.cs → MySQL/MySQLItemInfra.cs} +3 -3
- package/BlueprintTemplate/Blueprint.Infra/Services/{MySQLUserInfra.cs → MySQL/MySQLUserInfra.cs} +2 -3
- package/BlueprintTemplate/Blueprint.Infra/Services/RepositoryFactory.cs +14 -10
- package/package.json +1 -1
- package/BlueprintTemplate/Blueprint.API/Controllers/WeatherForecastController.cs +0 -33
- package/BlueprintTemplate/Blueprint.Core/Dtos/Others/BaseDto.cs +0 -10
- package/BlueprintTemplate/Blueprint.Infra/Migrations/20250401143459_InitialCreate.cs +0 -149
- /package/BlueprintTemplate/{Blueprint.Infra → Blueprint.Core}/Services/RabbitMqService.cs +0 -0
package/BlueprintTemplate/Blueprint.API/{Controllers → AsyncControllers}/UserControllerAsync.cs
RENAMED
|
@@ -3,11 +3,11 @@ using Microsoft.AspNetCore.Mvc;
|
|
|
3
3
|
using System.Text.Json;
|
|
4
4
|
using Template.Core.Dtos.Requests;
|
|
5
5
|
|
|
6
|
-
namespace Blueprint.API.
|
|
6
|
+
namespace Blueprint.API.AsyncControllers
|
|
7
7
|
{
|
|
8
8
|
[Route("rest/v{version:apiVersion}/users-async")]
|
|
9
9
|
[ApiController]
|
|
10
|
-
public class UserControllerAsync: Controller
|
|
10
|
+
public class UserControllerAsync : Controller
|
|
11
11
|
{
|
|
12
12
|
private readonly IRabbitMqService _rabbitMqService;
|
|
13
13
|
private readonly ILogger<UserControllerAsync> _logger;
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
<PrivateAssets>all</PrivateAssets>
|
|
18
18
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
19
19
|
</PackageReference>
|
|
20
|
-
<PackageReference Include="RabbitMQ.Client" Version="7.0.0" />
|
|
21
20
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
|
|
22
21
|
</ItemGroup>
|
|
23
22
|
|
|
@@ -44,7 +44,7 @@ namespace Template.API.Controllers
|
|
|
44
44
|
/// <param name="pagingParams"></param>
|
|
45
45
|
/// <returns></returns>
|
|
46
46
|
[HttpGet]
|
|
47
|
-
[Authorize(Roles = "Admin")]
|
|
47
|
+
//[Authorize(Roles = "Admin")]
|
|
48
48
|
[ProducesResponseType(typeof(PagerData<UserResponseDto>), StatusCodes.Status200OK)]
|
|
49
49
|
public async Task<IActionResult> GetUsers([FromQuery] PagingParams pagingParams)
|
|
50
50
|
{
|
|
@@ -69,6 +69,7 @@ namespace Template.API.Controllers
|
|
|
69
69
|
/// <param name="userId"></param>
|
|
70
70
|
/// <returns></returns>
|
|
71
71
|
[HttpGet("{userId}")]
|
|
72
|
+
[Authorize(Roles = "Admin")]
|
|
72
73
|
[ProducesResponseType(typeof(UserResponseDto), StatusCodes.Status200OK)]
|
|
73
74
|
public async Task<IActionResult> GetUserById(int userId)
|
|
74
75
|
{
|
|
@@ -9,7 +9,6 @@ using Amazon.S3;
|
|
|
9
9
|
using Template.Core.Interfaces.API;
|
|
10
10
|
using Template.Core.Services;
|
|
11
11
|
using Template.Core.Interfaces.SPI;
|
|
12
|
-
using Template.Infra.Services;
|
|
13
12
|
using Blueprint.Core.Interfaces.API;
|
|
14
13
|
using Blueprint.Core.Interfaces.SPI;
|
|
15
14
|
using Blueprint.Infra.Services;
|
|
@@ -20,6 +19,8 @@ using System.Text;
|
|
|
20
19
|
using Blueprint.Core.Services;
|
|
21
20
|
using Amazon.SimpleSystemsManagement.Model;
|
|
22
21
|
using Amazon.SimpleSystemsManagement;
|
|
22
|
+
using Blueprint.Infra.Services.Mongo;
|
|
23
|
+
using Blueprint.Infra.Services.MySQL;
|
|
23
24
|
|
|
24
25
|
var builder = WebApplication.CreateBuilder(args);
|
|
25
26
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
<ItemGroup>
|
|
11
11
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
|
12
12
|
<PackageReference Include="MongoDB.Bson" Version="3.1.0" />
|
|
13
|
+
<PackageReference Include="RabbitMQ.Client" Version="7.0.0" />
|
|
13
14
|
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.3.1" />
|
|
14
15
|
</ItemGroup>
|
|
15
16
|
</Project>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
namespace Template.Core.Dtos
|
|
2
2
|
{
|
|
3
3
|
/// <summary>
|
|
4
|
-
///
|
|
4
|
+
/// BaseRequestDto
|
|
5
5
|
/// </summary>
|
|
6
6
|
public class BaseRequestDto
|
|
7
7
|
{
|
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
/// </summary>
|
|
11
11
|
public int? Id { get; set; }
|
|
12
12
|
/// <summary>
|
|
13
|
-
///
|
|
13
|
+
/// Status
|
|
14
14
|
/// </summary>
|
|
15
|
-
public bool?
|
|
15
|
+
public bool? Status { get; set; }
|
|
16
16
|
/// <summary>
|
|
17
|
-
///
|
|
17
|
+
/// Date
|
|
18
18
|
/// </summary>
|
|
19
|
-
public DateTime?
|
|
19
|
+
public DateTime? Date { get; set; }
|
|
20
20
|
/// <summary>
|
|
21
|
-
///
|
|
21
|
+
/// Modified
|
|
22
22
|
/// </summary>
|
|
23
|
-
public DateTime?
|
|
23
|
+
public DateTime? Modified { get; set; }
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
namespace Template.Core.Dtos.Requests
|
|
1
|
+
namespace Template.Core.Dtos.Requests
|
|
4
2
|
{
|
|
5
3
|
public class UserRequestDto: BaseRequestDto
|
|
6
4
|
{
|
|
7
5
|
public string? Name { get; set; }
|
|
8
6
|
public string? Email { get; set; }
|
|
9
7
|
public string? Picture { get; set; }
|
|
10
|
-
public
|
|
8
|
+
public string? Role { get; set; }
|
|
11
9
|
}
|
|
12
10
|
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
using MongoDB.Bson;
|
|
3
|
-
|
|
4
|
-
namespace Template.Core.Dtos
|
|
1
|
+
namespace Template.Core.Dtos
|
|
5
2
|
{
|
|
6
3
|
/// <summary>
|
|
7
|
-
///
|
|
4
|
+
/// BaseResponseDto
|
|
8
5
|
/// </summary>
|
|
9
6
|
public class BaseDto
|
|
10
7
|
{
|
|
@@ -13,16 +10,16 @@ namespace Template.Core.Dtos
|
|
|
13
10
|
/// </summary>
|
|
14
11
|
public int? Id { get; set; }
|
|
15
12
|
/// <summary>
|
|
16
|
-
///
|
|
13
|
+
/// Status
|
|
17
14
|
/// </summary>
|
|
18
|
-
public bool?
|
|
15
|
+
public bool? Status { get; set; }
|
|
19
16
|
/// <summary>
|
|
20
|
-
///
|
|
17
|
+
/// Date
|
|
21
18
|
/// </summary>
|
|
22
|
-
public DateTime?
|
|
19
|
+
public DateTime? Date { get; set; }
|
|
23
20
|
/// <summary>
|
|
24
|
-
///
|
|
21
|
+
/// Modified
|
|
25
22
|
/// </summary>
|
|
26
|
-
public DateTime?
|
|
23
|
+
public DateTime? Modified { get; set; }
|
|
27
24
|
}
|
|
28
25
|
}
|
|
@@ -13,11 +13,11 @@ namespace Blueprint.Core.Entities
|
|
|
13
13
|
[Key]
|
|
14
14
|
[BsonElement("id")]
|
|
15
15
|
public int Id { get; set; }
|
|
16
|
-
[BsonElement("
|
|
17
|
-
public bool
|
|
18
|
-
[BsonElement("
|
|
19
|
-
public DateTime
|
|
20
|
-
[BsonElement("
|
|
21
|
-
public DateTime
|
|
16
|
+
[BsonElement("status")]
|
|
17
|
+
public bool Status { get; set; } = true;
|
|
18
|
+
[BsonElement("date")]
|
|
19
|
+
public DateTime Date { get; set; } = DateTime.Now;
|
|
20
|
+
[BsonElement("modified")]
|
|
21
|
+
public DateTime Modified { get; set; } = DateTime.Now;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
public class Category: BaseEntity
|
|
4
4
|
{
|
|
5
5
|
public string? Name { get; set; }
|
|
6
|
-
public string?
|
|
6
|
+
public string? CoverImage { get; set; }
|
|
7
|
+
public string? Title { get; set; }
|
|
8
|
+
public string? Content { get; set; }
|
|
7
9
|
public virtual List<Product>? Products { get; set; }
|
|
8
10
|
}
|
|
9
11
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
namespace Blueprint.Core.Entities
|
|
1
|
+
namespace Blueprint.Core.Entities
|
|
4
2
|
{
|
|
5
3
|
public class Product : BaseEntity
|
|
6
4
|
{
|
|
7
5
|
public string? Name { get; set; }
|
|
8
|
-
public string?
|
|
9
|
-
public string?
|
|
6
|
+
public string? CoverImage { get; set; }
|
|
7
|
+
public string? Title { get; set; }
|
|
8
|
+
public string? Content { get; set; }
|
|
10
9
|
public virtual Category? Category { get; set; }
|
|
11
10
|
public int? CategoryId { get; set; }
|
|
12
11
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
using Blueprint.Core.Entities;
|
|
2
|
-
using Blueprint.Core.Interfaces.
|
|
2
|
+
using Blueprint.Core.Interfaces.SPI;
|
|
3
3
|
|
|
4
4
|
namespace Template.Core.Interfaces.SPI
|
|
5
5
|
{
|
|
6
|
-
public interface IUserInfra:
|
|
6
|
+
public interface IUserInfra: IItemInfra<User>
|
|
7
7
|
{
|
|
8
8
|
public Task<User> GetUserByEmail(string email);
|
|
9
9
|
}
|
|
@@ -16,10 +16,13 @@
|
|
|
16
16
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
|
17
17
|
<PackageReference Include="MongoDB.Driver" Version="3.1.0" />
|
|
18
18
|
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
|
|
19
|
-
<PackageReference Include="RabbitMQ.Client" Version="7.0.0" />
|
|
20
19
|
</ItemGroup>
|
|
21
20
|
|
|
22
21
|
<ItemGroup>
|
|
23
22
|
<ProjectReference Include="..\Blueprint.Core\Blueprint.Core.csproj" />
|
|
24
23
|
</ItemGroup>
|
|
24
|
+
|
|
25
|
+
<ItemGroup>
|
|
26
|
+
<Folder Include="Migrations\" />
|
|
27
|
+
</ItemGroup>
|
|
25
28
|
</Project>
|
|
@@ -19,27 +19,27 @@ namespace Blueprint.Infra.Database
|
|
|
19
19
|
Id = 1,
|
|
20
20
|
Name = "Test",
|
|
21
21
|
Email = "",
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
Status = true,
|
|
23
|
+
Date = DateTime.Now,
|
|
24
|
+
Modified = DateTime.Now,
|
|
25
25
|
},
|
|
26
26
|
new User()
|
|
27
27
|
{
|
|
28
28
|
Id = 2,
|
|
29
29
|
Name = "Truong Dang",
|
|
30
30
|
Email = "truongdxfx08031@funix.edu.vn",
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
Status = true,
|
|
32
|
+
Date = DateTime.Now,
|
|
33
|
+
Modified = DateTime.Now,
|
|
34
34
|
},
|
|
35
35
|
new User()
|
|
36
36
|
{
|
|
37
37
|
Id = 3,
|
|
38
38
|
Name = "Thai Son",
|
|
39
39
|
Email = "truonghusk17aws1@gmail.com",
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
Status = true,
|
|
41
|
+
Date = DateTime.Now,
|
|
42
|
+
Modified = DateTime.Now,
|
|
43
43
|
}
|
|
44
44
|
);
|
|
45
45
|
modelBuilder?.Entity<Category>().HasData(
|
|
@@ -47,17 +47,17 @@ namespace Blueprint.Infra.Database
|
|
|
47
47
|
{
|
|
48
48
|
Id = 1,
|
|
49
49
|
Name = "Item 1",
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
Status = true,
|
|
51
|
+
Date = DateTime.Now,
|
|
52
|
+
Modified = DateTime.Now,
|
|
53
53
|
},
|
|
54
54
|
new Category()
|
|
55
55
|
{
|
|
56
56
|
Id = 2,
|
|
57
57
|
Name = "Item 2",
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
Status = true,
|
|
59
|
+
Date = DateTime.Now,
|
|
60
|
+
Modified = DateTime.Now,
|
|
61
61
|
}
|
|
62
62
|
);
|
|
63
63
|
modelBuilder?.Entity<Product>().HasData
|
|
@@ -66,120 +66,120 @@ namespace Blueprint.Infra.Database
|
|
|
66
66
|
{
|
|
67
67
|
Id = 1,
|
|
68
68
|
Name = "Item 1",
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/keo-dan-gach-TOA-Premtilmiue.png",
|
|
70
|
+
Status = true,
|
|
71
|
+
Date = DateTime.Now,
|
|
72
|
+
Modified = DateTime.Now,
|
|
73
73
|
CategoryId = 1,
|
|
74
74
|
},
|
|
75
75
|
new Product()
|
|
76
76
|
{
|
|
77
77
|
Id = 2,
|
|
78
78
|
Name = "Item 2",
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/keo-dan-gach-TOA-Protile.png",
|
|
80
|
+
Status = true,
|
|
81
|
+
Date = DateTime.Now,
|
|
82
|
+
Modified = DateTime.Now,
|
|
83
83
|
CategoryId = 2,
|
|
84
84
|
},
|
|
85
85
|
new Product()
|
|
86
86
|
{
|
|
87
87
|
Id = 3,
|
|
88
88
|
Name = "Item 3",
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/keo-dan-gach-TOA-Supertile.png",
|
|
90
|
+
Status = true,
|
|
91
|
+
Date = DateTime.Now,
|
|
92
|
+
Modified = DateTime.Now,
|
|
93
93
|
CategoryId = 2,
|
|
94
94
|
},
|
|
95
95
|
new Product()
|
|
96
96
|
{
|
|
97
97
|
Id = 4,
|
|
98
98
|
Name = "Item 4",
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/Silicone-Sealant-HP.jpg",
|
|
100
|
+
Status = true,
|
|
101
|
+
Date = DateTime.Now,
|
|
102
|
+
Modified = DateTime.Now,
|
|
103
103
|
CategoryId = 1,
|
|
104
104
|
},
|
|
105
105
|
new Product()
|
|
106
106
|
{
|
|
107
107
|
Id = 5,
|
|
108
108
|
Name = "Item 5",
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/Silicone-TOA-.jpg",
|
|
110
|
+
Status = true,
|
|
111
|
+
Date = DateTime.Now,
|
|
112
|
+
Modified = DateTime.Now,
|
|
113
113
|
CategoryId = 2,
|
|
114
114
|
},
|
|
115
115
|
new Product()
|
|
116
116
|
{
|
|
117
117
|
Id = 6,
|
|
118
118
|
Name = "Item 6",
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
119
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/Silicone-TOA-1.jpg",
|
|
120
|
+
Status = true,
|
|
121
|
+
Date = DateTime.Now,
|
|
122
|
+
Modified = DateTime.Now,
|
|
123
123
|
CategoryId = 2,
|
|
124
124
|
},
|
|
125
125
|
new Product()
|
|
126
126
|
{
|
|
127
127
|
Id = 7,
|
|
128
128
|
Name = "Item 7",
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/Silicone-TOA-303.jpg",
|
|
130
|
+
Status = true,
|
|
131
|
+
Date = DateTime.Now,
|
|
132
|
+
Modified = DateTime.Now,
|
|
133
133
|
CategoryId = 1,
|
|
134
134
|
},
|
|
135
135
|
new Product()
|
|
136
136
|
{
|
|
137
137
|
Id = 8,
|
|
138
138
|
Name = "Item 8",
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
139
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/keo-dan-gach-TOA-Premtilmiue.png",
|
|
140
|
+
Status = true,
|
|
141
|
+
Date = DateTime.Now,
|
|
142
|
+
Modified = DateTime.Now,
|
|
143
143
|
CategoryId = 2,
|
|
144
144
|
},
|
|
145
145
|
new Product()
|
|
146
146
|
{
|
|
147
147
|
Id = 9,
|
|
148
148
|
Name = "Item 9",
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/keo-dan-gach-TOA-Protile.png",
|
|
150
|
+
Status = true,
|
|
151
|
+
Date = DateTime.Now,
|
|
152
|
+
Modified = DateTime.Now,
|
|
153
153
|
CategoryId = 2,
|
|
154
154
|
},
|
|
155
155
|
new Product()
|
|
156
156
|
{
|
|
157
157
|
Id = 10,
|
|
158
158
|
Name = "Item 10",
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/keo-dan-gach-TOA-Supertile.png",
|
|
160
|
+
Status = true,
|
|
161
|
+
Date = DateTime.Now,
|
|
162
|
+
Modified = DateTime.Now,
|
|
163
163
|
CategoryId = 1,
|
|
164
164
|
},
|
|
165
165
|
new Product()
|
|
166
166
|
{
|
|
167
167
|
Id = 11,
|
|
168
168
|
Name = "Item 11",
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/Silicone-Sealant-HP.jpg",
|
|
170
|
+
Status = true,
|
|
171
|
+
Date = DateTime.Now,
|
|
172
|
+
Modified = DateTime.Now,
|
|
173
173
|
CategoryId = 2,
|
|
174
174
|
},
|
|
175
175
|
new Product()
|
|
176
176
|
{
|
|
177
177
|
Id = 12,
|
|
178
178
|
Name = "Item 12",
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
179
|
+
CoverImage = "https://innocons.s3.ap-southeast-1.amazonaws.com/products/Silicone-TOA-.jpg",
|
|
180
|
+
Status = true,
|
|
181
|
+
Date = DateTime.Now,
|
|
182
|
+
Modified = DateTime.Now,
|
|
183
183
|
CategoryId = 2,
|
|
184
184
|
}
|
|
185
185
|
);
|