namespace Brizco.Core.EntityServices; public class ComplexService : IComplexService { private readonly ISender _sender; private readonly RoleManager _roleManager; public ComplexService(ISender sender,RoleManager roleManager) { _sender = sender; _roleManager = roleManager; } public async Task CreateComplexAsync(string complexName, string complexAddress, string complexSuppPhone, Guid managerUserId, CancellationToken cancellationToken) { var complex = await _sender.Send(new CreateComplexCommand(complexName, complexAddress, complexSuppPhone)); var managerRole = new ApplicationRole { ComplexId = complex.Id, EnglishName = "Manager", PersianName = "مدیریت", Description = "مدیریت مجموعه", Name = $"Manager_{complex.Id.ToString()}" }; var createRoleResult = await _roleManager.CreateAsync(managerRole); if (!createRoleResult.Succeeded) throw new AppException(string.Join('|', createRoleResult.Errors)); foreach (var claim in ApplicationClaims.ManagerClaims) await _roleManager.AddClaimAsync(managerRole, claim); var complexUser = await _sender.Send(new CreateComplexUserCommand(complex.Id, managerUserId, new List{ managerRole.Id }), cancellationToken); return complex; } }