/// <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); }
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)); }