56 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using MareSynchronos.API.Dto.Group;
 | |
| using MareSynchronos.PlayerData.Pairs;
 | |
| using MareSynchronos.Services.Mediator;
 | |
| using MareSynchronos.Services.ServerConfiguration;
 | |
| using MareSynchronos.UI.Components;
 | |
| using MareSynchronos.UI.Handlers;
 | |
| using MareSynchronos.WebAPI;
 | |
| using Microsoft.Extensions.Logging;
 | |
| 
 | |
| namespace MareSynchronos.UI;
 | |
| 
 | |
| public class DrawEntityFactory
 | |
| {
 | |
|     private readonly ILogger<DrawEntityFactory> _logger;
 | |
|     private readonly ApiController _apiController;
 | |
|     private readonly MareMediator _mediator;
 | |
|     private readonly SelectPairForTagUi _selectPairForTagUi;
 | |
|     private readonly ServerConfigurationManager _serverConfigurationManager;
 | |
|     private readonly SelectTagForPairUi _selectTagForPairUi;
 | |
|     private readonly TagHandler _tagHandler;
 | |
|     private readonly IdDisplayHandler _uidDisplayHandler;
 | |
| 
 | |
|     public DrawEntityFactory(ILogger<DrawEntityFactory> logger, ApiController apiController, IdDisplayHandler uidDisplayHandler,
 | |
|         SelectTagForPairUi selectTagForPairUi, MareMediator mediator,
 | |
|         TagHandler tagHandler, SelectPairForTagUi selectPairForTagUi,
 | |
|         ServerConfigurationManager serverConfigurationManager)
 | |
|     {
 | |
|         _logger = logger;
 | |
|         _apiController = apiController;
 | |
|         _uidDisplayHandler = uidDisplayHandler;
 | |
|         _selectTagForPairUi = selectTagForPairUi;
 | |
|         _mediator = mediator;
 | |
|         _tagHandler = tagHandler;
 | |
|         _selectPairForTagUi = selectPairForTagUi;
 | |
|         _serverConfigurationManager = serverConfigurationManager;
 | |
|     }
 | |
| 
 | |
|     public DrawFolderGroup CreateDrawGroupFolder(GroupFullInfoDto groupFullInfoDto, Dictionary<Pair, List<GroupFullInfoDto>> pairs, int totalPairs = -1)
 | |
|     {
 | |
|         return new DrawFolderGroup(groupFullInfoDto.Group.GID, groupFullInfoDto, _apiController,
 | |
|             pairs.Select(p => CreateDrawPair(groupFullInfoDto.Group.GID + p.Key.UserData.UID, p.Key, p.Value)).ToList(),
 | |
|             _tagHandler, _uidDisplayHandler, _mediator, totalPairs);
 | |
|     }
 | |
| 
 | |
|     public DrawFolderTag CreateDrawTagFolder(string tag, Dictionary<Pair, List<GroupFullInfoDto>> pairs, int totalPairs = -1)
 | |
|     {
 | |
|         return new(tag, pairs.Select(u => CreateDrawPair(tag, u.Key, u.Value)).ToList(),
 | |
|             _tagHandler, _apiController, _selectPairForTagUi, totalPairs);
 | |
|     }
 | |
| 
 | |
|     public DrawUserPair CreateDrawPair(string id, Pair user, List<GroupFullInfoDto> groups)
 | |
|     {
 | |
|         return new DrawUserPair(id + user.UserData.UID, user, groups, _apiController, _uidDisplayHandler,
 | |
|             _mediator, _selectTagForPairUi, _serverConfigurationManager);
 | |
|     }
 | |
| } | 
