/// <summary> /// Creates NdRestApiFacade instance. /// </summary> /// <param name="userInfo"><see cref="UserInfo"/> instance.</param> /// <returns>NdRestApiFacade instance.</returns> public NdRestApiFacade CreateApiClient(UserInfo userInfo) { var containerWrapper = new FormattersContainerWrapper(); var contentFormattersFactory = new ContentFormattersFactory(containerWrapper); var authenticationStorageAdapter = new InMemoryAuthenticationStorageAdapter(); var clientData = new ClientData(ndHostSettings, authenticationStorageAdapter); var requestBuilderFactory = new RequestBuilderFactory(contentFormattersFactory, clientData); var oauthLocker = new OAuthLocker(); var ndThreadUrlFormatHelper = new NdThreadUrlFormatHelper(); var oauthClientProvider = new OAuthClientProvider(clientData); var oAuth = new OAuth(requestBuilderFactory, oauthClientProvider, contentFormattersFactory); var oAuthFacade = new OAuthFacade(oAuth, clientData, userInfo); oAuthFacade.RefreshTokens(); var clientProvider = new ClientProvider(oAuth, clientData, ndThreadUrlFormatHelper, oauthLocker); // Note: it seems that we are running our tests on a single host. return(restClients.GetOrAdd(userInfo.UserName, new Lazy <NdRestApiFacade>( () => new NdRestApiFacade(RestClientV1Initializer(requestBuilderFactory, clientProvider, contentFormattersFactory), RestClientV2Initializer(requestBuilderFactory, clientProvider, contentFormattersFactory), new CustomRestClient(requestBuilderFactory, clientProvider), oAuthFacade))) .Value); }
static void Main(string[] args) { // выбераем сертификат var cert = GetCert(); if (cert == null) { return; } Console.WriteLine("Укажите pin ЭЦП"); string pin = string.Empty;//Console.ReadLine(); var config = new ClientConfig { UseTunnel = false, IsPPAK = false, CertificateThumbprint = cert.Item2, OrgPPAGUID = "b14c8b87-6d0d-4854-a97c-74d34e1a8ca1", OrgEntityGUID = "c3ffd8b6-cda3-4eb5-9696-30fee607c8b3", Role = Globals.OrganizationRole.UK }; // иницализируем менеджер конечных точек ServicePointConfig.InitConfig(cert.Item2, pin, cert.Item1); var story = new MessageStory(); var broker = new MessageBroker(config, story); broker.AddHanbler(typeof(exportAccountResultType), ExportAccountResultHandler); broker.AddHanbler(typeof(exportHouseResultType), ExportHouseResultHandler); BuilderOption opt = new BuilderOption(); opt.IsOperator = false; opt.Direction = Framework.Enums.RequestDirection.Export; opt.Params.Add(Framework.Enums.ParametrType.OrgPPAGUID, "b14c8b87-6d0d-4854-a97c-74d34e1a8ca1"); opt.Params.Add(Framework.Enums.ParametrType.FIASHouseGUID, "7263796e-1d5a-4535-8def-93315e8975db"); var builder = new RequestBuilderFactory(); builder.BuildError += Factory_BuildError; builder.Add <exportHouseDataRequest, ExportHouse>(opt); builder.Add <exportAccountDataRequest, ExportAccount>(opt); exportHouseDataRequest request = null; exportAccountDataRequest request2 = null; exportStatusCAChDataRequest request3 = null; if (builder.TryBuild(opt, out request3)) { } if (builder.TryBuild(opt, out request)) { Console.WriteLine("Добавляем сообщения в очередь"); for (int i = 0; i < 10; i++) { request.RequestHeader.MessageGUID = Guid.NewGuid().ToString().ToLower(); broker.CreateMessage(request, EndPoints.HouseManagementAsync); } broker.CreateMessage(request, EndPoints.HouseManagementAsync); } if (builder.TryBuild(opt, out request2)) { broker.CreateMessage(request2, EndPoints.HouseManagementAsync); } broker.SendMessage(); Console.WriteLine("Отправлено"); broker.CheckResult(); Console.WriteLine("Обработка"); broker.Process(); Console.ReadKey(); }