Ejemplo n.º 1
0
        /// <summary>
        // Получение специального клиента Api для внутреннего использования
        // Он будет работать через локальный класс сервиса Api, а не обращаться к Web-сервису Api
        // Нет смысла тратить ресурсы web-сервиса Api на мониторинг самого Зидиума
        // Настройки доступа к системному аккаунту берутся не из конфига, а из базы
        /// </summary>
        public static IClient GetInternalSystemClient()
        {
            var dispatcher = DispatcherHelper.GetDispatcherService();
            var dtoService = new ApiToDispatcherAdapter(dispatcher, NetworkHelper.GetLocalIp(), SystemAccountName);
            var apiService = new ApiService(dtoService);
            var config     = ConfigHelper.LoadFromXmlOrGetDefault();

            config.Access.AccountName = SystemAccountName;
            config.Access.SecretKey   = GetSystemToken().SecretKey;
            var client = new Client(apiService, config);

            return(client);
        }
Ejemplo n.º 2
0
        public static IApiService GetWebService(Api.AccessToken accessToken, string accountName)
        {
            if (UseLocalDispatcher())
            {
                var dispatcher = DispatcherService.Wrapper;
                var dtoService = new ApiToDispatcherAdapter(dispatcher, "2.2.2.2", accountName);
                var apiService = new ApiService(dtoService, accessToken);
                return(apiService);
            }
            var uri = ApiHelper.GetApiUrl(accountName);

            if (CanRunApiOnIisExpress && uri.AbsoluteUri.StartsWith("http://localhost"))
            {
                CanRunApiOnIisExpress = false;
                IisExpress.StartApiWebService();
            }
            var dtoService2 = new DtoServiceProxy(uri);

            return(new ApiService(dtoService2, accessToken));
        }