Skip to content

Commit aa9c280

Browse files
authored
Поправить багу с копированием удаленных вводных (#3125)
* Поправить багу с копированием удаленных вводных * Почитистить CharacterService
1 parent 0ce0a96 commit aa9c280

File tree

4 files changed

+12
-13
lines changed

4 files changed

+12
-13
lines changed

src/JoinRpg.Portal/Controllers/XGameApi/CharacterApiController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using JoinRpg.DataModel;
33
using JoinRpg.Domain;
44
using JoinRpg.Portal.Infrastructure.Authorization;
5+
using JoinRpg.PrimitiveTypes;
56
using JoinRpg.PrimitiveTypes.ProjectMetadata;
67
using JoinRpg.Services.Interfaces.Characters;
78
using JoinRpg.Web.Models.Characters;
@@ -90,7 +91,7 @@ public async Task<CharacterInfo> GetOne(int projectId, int characterId)
9091
[Route("{characterId}/fields")]
9192
public async Task<string> SetCharacterFields(int projectId, int characterId, Dictionary<int, string?> fieldValues)
9293
{
93-
await characterService.SetFields(projectId, characterId, fieldValues);
94+
await characterService.SetFields(new CharacterIdentification(projectId, characterId), fieldValues);
9495
return "ok";
9596
}
9697

src/JoinRpg.Services.Impl/CharacterServiceImpl.cs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using JoinRpg.Helpers;
88
using JoinRpg.Interfaces;
99
using JoinRpg.PrimitiveTypes;
10+
using JoinRpg.PrimitiveTypes.Access;
1011
using JoinRpg.PrimitiveTypes.ProjectMetadata;
1112
using JoinRpg.Services.Interfaces.Characters;
1213
using JoinRpg.Services.Interfaces.Notification;
@@ -86,7 +87,7 @@ public async Task EditCharacter(EditCharacterRequest editCharacterRequest)
8687
{
8788
var character = await LoadCharacter(editCharacterRequest.Id);
8889

89-
var projectInfo = await projectMetadataRepository.GetProjectMetadata(new(editCharacterRequest.Id.ProjectId));
90+
var projectInfo = await projectMetadataRepository.GetProjectMetadata(editCharacterRequest.Id.ProjectId);
9091

9192
SetCharacterSettings(character, editCharacterRequest.CharacterTypeInfo, projectInfo);
9293

@@ -145,7 +146,7 @@ private async Task<Character> LoadCharacter(CharacterIdentification moniker)
145146
{
146147
var character = await CharactersRepository.GetCharacterAsync(moniker.ProjectId, moniker.CharacterId);
147148

148-
return character.RequestMasterAccess(CurrentUserId, acl => acl.CanEditRoles).EnsureProjectActive();
149+
return character.RequestMasterAccess(CurrentUserId, Permission.CanEditRoles).EnsureProjectActive();
149150
}
150151

151152
public async Task MoveCharacter(int currentUserId,
@@ -166,13 +167,10 @@ public async Task MoveCharacter(int currentUserId,
166167
await UnitOfWork.SaveChangesAsync();
167168
}
168169

169-
public async Task SetFields(int projectId, int characterId, Dictionary<int, string?> requestFieldValues)
170+
public async Task SetFields(CharacterIdentification characterId, Dictionary<int, string?> requestFieldValues)
170171
{
171-
var character = await LoadProjectSubEntityAsync<Character>(projectId, characterId);
172-
var projectInfo = await projectMetadataRepository.GetProjectMetadata(new(projectId));
173-
_ = character.RequestMasterAccess(CurrentUserId, acl => acl.CanEditRoles);
174-
175-
_ = character.EnsureProjectActive();
172+
var character = await LoadCharacter(characterId);
173+
var projectInfo = await projectMetadataRepository.GetProjectMetadata(characterId.ProjectId);
176174

177175
var changedFields = fieldSaveHelper.SaveCharacterFields(CurrentUserId,
178176
character,
@@ -183,7 +181,7 @@ public async Task SetFields(int projectId, int characterId, Dictionary<int, stri
183181

184182
FieldsChangedEmail? email = null;
185183

186-
if (changedFields.Any())
184+
if (changedFields.Count != 0)
187185
{
188186
var user = await UserRepository.GetById(CurrentUserId);
189187
email = EmailHelpers.CreateFieldsEmail(

src/JoinRpg.Services.Impl/Projects/CloneProjectHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,10 +305,10 @@ private async Task CopyPlot()
305305
{
306306
var plotFolderId = await plotService.CreatePlotFolder(projectId, originalFolder.MasterTitle, originalFolder.TodoField);
307307

308-
foreach (var originalElement in originalFolder.Elements)
308+
foreach (var originalElement in originalFolder.Elements.Where(e => e.IsActive))
309309
{
310310
PlotElementTexts lastVersion = originalElement.LastVersion();
311-
await plotService.CreatePlotElement(
311+
_ = await plotService.CreatePlotElement(
312312
plotFolderId,
313313
lastVersion.Content.Contents ?? "",
314314
lastVersion.TodoField,

src/JoinRpg.Services.Interfaces/Characters/ICharacterService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ Task MoveCharacter(int currentUserId,
1616
int parentCharacterGroupId,
1717
short direction);
1818

19-
Task SetFields(int projectId, int characterId, Dictionary<int, string?> requestFieldValues);
19+
Task SetFields(CharacterIdentification characterId, Dictionary<int, string?> requestFieldValues);
2020
}

0 commit comments

Comments
 (0)