11.02.2019, 17:20 | #8 |
Участник
|
У меня какой то взрыв мозга... Попытался проверить поведение Organization Service в плагине при разных идентификаторах пользователя...
Попробовал получать экземпляр сервиса с разными идентификаторами пользователей, для каждого экземпляра выполнял WhoAmIRequest и надеялся получить разных пользователей на выходе. Собственно, вот код плагина: X++: public class GetUsers : IPlugin { public void Execute(IServiceProvider serviceProvider) { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var result = ""; var service1 = factory.CreateOrganizationService(null); result += $"null = {GetUserInfo(service1)}"; var service2 = factory.CreateOrganizationService(Guid.Empty); result += $"Guid.Empty ({Guid.Empty}) = {GetUserInfo(service2)}"; var service3 = factory.CreateOrganizationService(context.UserId); result += $"UserId ({context.UserId}) = {GetUserInfo(service3)}"; var service4 = factory.CreateOrganizationService(context.InitiatingUserId); result += $"InitiatingUserId ({context.InitiatingUserId}) = {GetUserInfo(service4)}"; throw new InvalidPluginExecutionException(result); } private static string GetUserInfo(IOrganizationService service) { var request = new WhoAmIRequest(); var response = (WhoAmIResponse)service.Execute(request); var userId = response.UserId; var user = service.Retrieve("systemuser", userId, new ColumnSet("fullname")); var data = $"{userId} | {user.GetAttributeValue<string>("fullname")}{Environment.NewLine}"; return data; } } X++: null = 34248a5f-bf3e-4f3c-95c2-882424d25d37 | SYSTEM
Guid.Empty (00000000-0000-0000-0000-000000000000) = 34248a5f-bf3e-4f3c-95c2-882424d25d37 | SYSTEM
InitiatingUserId (c69c88fb-4e41-e811-a214-83daa2756e35) = 34248a5f-bf3e-4f3c-95c2-882424d25d37 | SYSTEM
UserId (e73922d1-d7ec-e811-a224-ddda898a939f) = 34248a5f-bf3e-4f3c-95c2-882424d25d37 | SYSTEM Как так? |
|