Skip to content

Commit

Permalink
Merge branch 'bugfix/fix-upgrade-net9' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
eric4ps committed Feb 16, 2025
2 parents 8d7585c + d9ae816 commit 3ad4e2e
Show file tree
Hide file tree
Showing 12 changed files with 82 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/applications/mixcore/appsettings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"AllowAnyOrigin": false,
"Logging": {
"Console": { "TimestampFormat": "[yyyy-MM-dd HH:mm:ss.fffffff] " },
"LogLevel": {
Expand All @@ -8,6 +7,7 @@
"Microsoft.AspNetCore.Mvc": "Information"
}
},
"AllowAnyOrigin": false,
"DefaultCulture": "en-us",
"HttpScheme": "https",
"DatabaseProvider": "SQLITE",
Expand Down
Binary file modified src/applications/mixcore/wwwroot/default-mixcontent/default.zip
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -3968,6 +3968,35 @@
"status": "Published",
"isDeleted": false
},
{
"systemName": "tenant_id",
"displayName": "Tenant Id",
"mixDatabaseName": "mix_metadata",
"dataType": "Integer",
"configurations": {
"IsUnique": false,
"IsRequire": false,
"IsEncrypt": false,
"IsSelect": false,
"Upload": {
"ArrayAccepts": [],
"Accepts": "",
"IsCrop": false
}
},
"IntegerId": null,
"defaultValue": null,
"mixDatabaseId": 1,
"mixDatabase": null,
"id": 5,
"createdDateTime": "2023-05-05T03:11:24.2721044",
"lastModified": null,
"createdBy": "tinku",
"modifiedBy": null,
"priority": 0,
"status": "Published",
"isDeleted": false
},
{
"systemName": "priority",
"displayName": "Priority",
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<section><div class="row"><div class="col-md-6"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllContent" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPageContent"> <label class="custom-control-label" for="switchSelectAllPageContent">Select all pages</label></div></div><div class="col-md-6" ng-if="$ctrl.selectAllContent"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllData" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPageData"> <label class="custom-control-label" for="switchSelectAllPageData">With Data</label></div></div></div><hr><div class="row justify-content-md-left"><div class="col-md-4 mb-2" ng-repeat="page in $ctrl.data.items track by page.id"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="page.isActived" ng-change="$ctrl.selectContent(page, page.isActived)" id="page-{{page.id}}"> <label class="custom-control-label" for="page-{{page.id}}">{{page.displayName}}</label></div><div class="col-md-1"></div><div class="col-md-11 small" ng-show="page.isActived"><input type="checkbox" ng-model="page.isExportData" id="page-data-{{page.id}}" ng-change="$ctrl.selectData(page, page.isExportData)"> <label for="page-data-{{page.id}}">With data</label></div></div></div></section>
<section><div class="row"><div class="col-md-6"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllContent" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPageContent"> <label class="custom-control-label" for="switchSelectAllPageContent">Select all pages</label></div></div><div class="col-md-6" ng-if="$ctrl.selectAllContent"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllData" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPageData"> <label class="custom-control-label" for="switchSelectAllPageData">With Data</label></div></div></div><hr><div class="row justify-content-md-left"><div class="col-md-4 mb-2" ng-repeat="page in $ctrl.data.items track by page.id"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="page.isActived" ng-change="$ctrl.selectContent(page, page.isActived)" id="page-{{page.id}}"> <label class="custom-control-label" for="page-{{page.id}}">{{page.title}}</label></div><div class="col-md-1"></div><div class="col-md-11 small" ng-show="page.isActived"><input type="checkbox" ng-model="page.isExportData" id="page-data-{{page.id}}" ng-change="$ctrl.selectData(page, page.isExportData)"> <label for="page-data-{{page.id}}">With data</label></div></div></div></section>
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<section><div class="row"><div class="col-md-6"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllContent" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPostContent"> <label class="custom-control-label" for="switchSelectAllPostContent">Select all posts</label></div></div><div class="col-md-6" ng-if="$ctrl.selectAllContent"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllData" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPostData"> <label class="custom-control-label" for="switchSelectAllPostData">With Data</label></div></div></div><hr><div class="row justify-content-md-left"><div class="col-md-4 mb-2" ng-repeat="post in $ctrl.data.items track by post.id"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="post.isActived" ng-change="$ctrl.selectContent(post, post.isActived)" id="post-{{post.id}}"> <label class="custom-control-label" for="post-{{post.id}}">{{post.displayName}}</label></div><div class="col-md-1"></div><div class="col-md-11 small" ng-show="post.isActived"><input type="checkbox" ng-model="post.isExportData" id="post-data-{{post.id}}" ng-change="$ctrl.selectData(post, post.isExportData)"> <label for="post-data-{{post.id}}">With data</label></div></div></div></section>
<section><div class="row"><div class="col-md-6"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllContent" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPostContent"> <label class="custom-control-label" for="switchSelectAllPostContent">Select all posts</label></div></div><div class="col-md-6" ng-if="$ctrl.selectAllContent"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="$ctrl.selectAllData" ng-change="$ctrl.selectAll($ctrl.data.items)" id="switchSelectAllPostData"> <label class="custom-control-label" for="switchSelectAllPostData">With Data</label></div></div></div><hr><div class="row justify-content-md-left"><div class="col-md-4 mb-2" ng-repeat="post in $ctrl.data.items track by post.id"><div class="form-check form-switch"><input type="checkbox" class="form-check-input" ng-model="post.isActived" ng-change="$ctrl.selectContent(post, post.isActived)" id="post-{{post.id}}"> <label class="custom-control-label" for="post-{{post.id}}">{{post.title}}</label></div><div class="col-md-1"></div><div class="col-md-11 small" ng-show="post.isActived"><input type="checkbox" ng-model="post.isExportData" id="post-data-{{post.id}}" ng-change="$ctrl.selectData(post, post.isExportData)"> <label for="post-data-{{post.id}}">With data</label></div></div></div></section>
1 change: 0 additions & 1 deletion src/modules/mix.portal/Controllers/MixThemeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ public MixThemeController(
public async Task<ActionResult<MixThemeViewModel>> Save(MixThemeViewModel data)
{
data.SetUowInfo(Uow, CacheService);
data.CreatedBy = MixIdentityService.GetClaim(User, MixClaims.UserName);
await data.SaveAsync();
return Ok(data);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ public override Task<MixModuleData> ParseEntity(CancellationToken cancellationTo
{
Value = JsonConvert.SerializeObject(Data);
SimpleDataColumns = JsonConvert.SerializeObject(Columns);
LastModified = DateTime.Now;

return base.ParseEntity(cancellationToken);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ public MixMetadataConfiguration(DatabaseService databaseService) : base(database
public override void Configure(EntityTypeBuilder<MixMetadata> builder)
{
builder.ToTable(MixDbDatabaseNames.Metadata);
builder.Property(e => e.TenantId)
.HasColumnName("tenant_id");
base.Configure(builder);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ public override void Configure(EntityTypeBuilder<MixMetadataContentAssociation>
builder.ToTable(MixDbDatabaseNames.MetadataContentAssociation);
base.Configure(builder);

builder.Property(e => e.MetadataId)
.HasColumnName("metadata_id");
builder.Property(e => e.ContentId)
.HasColumnName("content_id");
builder.Property(e => e.TenantId)
.HasColumnName("tenant_id");
builder.Property(e => e.ContentType)
Expand Down
1 change: 1 addition & 0 deletions src/platform/mix.library/Base/MixRestApiControllerBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public MixRestHandlerApiControllerBase(
protected virtual async Task<TPrimaryKey> CreateHandlerAsync(TView data, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();

return await RestApiService.CreateHandlerAsync(data, cancellationToken);
}

Expand Down
24 changes: 24 additions & 0 deletions src/platform/mix.library/Base/MixRestfulApiControllerBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Mix.Auth.Constants;
using Mix.Database.Entities.Account;
using Mix.Lib.Dtos;
using Mix.Lib.Interfaces;
Expand Down Expand Up @@ -54,6 +55,18 @@ public MixRestfulApiControllerBase(IHttpContextAccessor httpContextAccessor, ICo
[HttpPost]
public virtual async Task<ActionResult<TView>> Create([FromBody] TView data)
{
ReflectionHelper.SetPropertyValue(data, new EntityPropertyModel()
{
PropertyName = "CreatedBy",
PropertyValue = MixIdentityService.GetClaim(User, MixClaims.UserName)
});

ReflectionHelper.SetPropertyValue(data, new EntityPropertyModel()
{
PropertyName = "CreatedDateTime",
PropertyValue = DateTime.UtcNow
});

var id = await CreateHandlerAsync(data);
var result = await GetById(id);
return Ok(result);
Expand All @@ -64,6 +77,17 @@ public virtual async Task<ActionResult<TView>> Create([FromBody] TView data)
[HttpPut("{id}")]
public virtual async Task<IActionResult> Update(TPrimaryKey id, [FromBody] TView data)
{
ReflectionHelper.SetPropertyValue(data, new EntityPropertyModel()
{
PropertyName = "ModifiedBy",
PropertyValue = MixIdentityService.GetClaim(User, MixClaims.UserName)
});

ReflectionHelper.SetPropertyValue(data, new EntityPropertyModel()
{
PropertyName = "LastModified",
PropertyValue = DateTime.UtcNow
});
await UpdateHandler(id, data);
var result = await GetById(id);
return Ok(result);
Expand Down
19 changes: 19 additions & 0 deletions src/platform/mix.mixdb/Services/MixdbStructureService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,24 @@ public async Task MigrateSystemDatabases(CancellationToken cancellationToken = d
var obj = JObject.Parse(strMixDbs.Content);
var databases = obj.Value<JArray>("databases")?.ToObject<List<MixDatabase>>();
var columns = obj.Value<JArray>("columns")?.ToObject<List<MixDatabaseColumn>>();
var masterDbContext = _cmsUow.DbContext.MixDatabaseContext.FirstOrDefault(
m => m.SystemName == "master");
if (masterDbContext is null)
{
masterDbContext = new MixDatabaseContext()
{
SystemName = "master",
Schema = "master",
ConnectionString = _databaseService.GetConnectionString(MixConstants.CONST_CMS_CONNECTION),
DatabaseProvider = _databaseService.DatabaseProvider,
AesKey = _configuration.AesKey(),
CreatedDateTime = DateTime.UtcNow,
NamingConvention = MixDatabaseNamingConvention.SnakeCase,
TenantId = CurrentTenant?.Id ?? 1,
DisplayName = "Master"
};
await _cmsUow.DbContext.AddAsync(masterDbContext);
}
if (databases != null)
{
foreach (var database in databases)
Expand All @@ -184,6 +202,7 @@ public async Task MigrateSystemDatabases(CancellationToken cancellationToken = d
{
MixDbDatabaseViewModel currentDb = new(database, _cmsUow);
currentDb.Id = 0;
currentDb.MixDatabaseContextId = masterDbContext.Id;
currentDb.TenantId = CurrentTenant?.Id ?? 1;
currentDb.CreatedDateTime = DateTime.UtcNow;
currentDb.Columns = new();
Expand Down

0 comments on commit 3ad4e2e

Please sign in to comment.