diff --git a/src/GameIdeas/Server/GameIdeas.WebAPI/Profiles/GameProfile.cs b/src/GameIdeas/Server/GameIdeas.WebAPI/Profiles/GameProfile.cs index 0621bf6..407d188 100644 --- a/src/GameIdeas/Server/GameIdeas.WebAPI/Profiles/GameProfile.cs +++ b/src/GameIdeas/Server/GameIdeas.WebAPI/Profiles/GameProfile.cs @@ -23,9 +23,9 @@ public class GameProfile : Profile .ForMember(d => d.Properties, o => o.MapFrom(s => s.GameProperties.Select(p => p.Property))) .ForMember(d => d.Tags, o => o.MapFrom(s => s.GameTags.Select(t => t.Tag))) .ForMember(d => d.Publisher, o => o.MapFrom(s => s.Publisher)) - .ForMember(d => d.Publisher!.Id, o => o.MapFrom(s => s.PublisherId)) + .ForPath(d => d.Publisher!.Id, o => o.MapFrom(s => s.PublisherId)) .ForMember(d => d.Developer, o => o.MapFrom(s => s.Developer)) - .ForMember(d => d.Developer!.Id, o => o.MapFrom(s => s.DeveloperId)) + .ForPath(d => d.Developer!.Id, o => o.MapFrom(s => s.DeveloperId)) .ReverseMap(); CreateMap() diff --git a/src/GameIdeas/Server/GameIdeas.WebAPI/Services/Games/GameWriteService.cs b/src/GameIdeas/Server/GameIdeas.WebAPI/Services/Games/GameWriteService.cs index d5c0166..1b7127f 100644 --- a/src/GameIdeas/Server/GameIdeas.WebAPI/Services/Games/GameWriteService.cs +++ b/src/GameIdeas/Server/GameIdeas.WebAPI/Services/Games/GameWriteService.cs @@ -14,9 +14,7 @@ public class GameWriteService(GameIdeasContext context, IMapper mapper) : IGameW { var gameToCreate = mapper.Map(gameDto); - await HandlePublisherCreation(gameDto.Publisher); - await HandleDeveloperCreation(gameDto.Developer); - + HandleDeveloperPublisherCreation(gameToCreate); await context.Games.AddAsync(gameToCreate); await context.SaveChangesAsync(); @@ -38,9 +36,7 @@ public class GameWriteService(GameIdeasContext context, IMapper mapper) : IGameW var gameToUpdate = mapper.Map(gameDto); - await HandlePublisherCreation(gameDto.Publisher); - await HandleDeveloperCreation(gameDto.Developer); - + HandleDeveloperPublisherCreation(gameToUpdate); await HandlePlatformsCreation(gameDto.Platforms, gameToUpdate.Id); await HandlePropertiesCreation(gameDto.Properties, gameToUpdate.Id); await HandleTagsCreation(gameDto.Tags, gameToUpdate.Id); @@ -109,23 +105,16 @@ public class GameWriteService(GameIdeasContext context, IMapper mapper) : IGameW } } - private async Task HandlePublisherCreation(PublisherDto? categoriesToCreate) + private void HandleDeveloperPublisherCreation(Game? game) { - if (categoriesToCreate != null) + if (game?.Publisher != null) { - var pub = mapper.Map(categoriesToCreate); - context.Publishers.Attach(pub); - await context.Publishers.AddAsync(pub); + context.Publishers.Attach(game.Publisher); } - } - private async Task HandleDeveloperCreation(DeveloperDto? categoriesToCreate) - { - if (categoriesToCreate != null) + if (game?.Developer != null) { - var dev = mapper.Map(categoriesToCreate); - context.Developers.Attach(dev); - await context.Developers.AddAsync(dev); + context.Developers.Attach(game.Developer); } } }