Example #1
0
     this IRestHttpClient restHttpClient,
     BaseRestRequest request,
     ILogger logger,
     Func <TDto, TModel> dtoToModelConverter)
 {
     try
     {
        public async Task <bool> RefreshToken(IRestHttpClient restHttpClient)
        {
            if (_refreshTokenStatus == RefreshTokenStatus.Refreshed)
            {
                return(true);
            }

            Interlocked.Increment(ref _entries);

            await _semaphoreSlim.WaitAsync().ConfigureAwait(false);

            if (_refreshTokenStatus == RefreshTokenStatus.CanBeRefreshed)
            {
                _refreshTokenStatus = await TryRefreshToken(restHttpClient).ConfigureAwait(false);
            }

            _semaphoreSlim.Release();

            Interlocked.Decrement(ref _entries);
            if (Interlocked.Read(ref _entries) == 0 && _refreshTokenStatus != RefreshTokenStatus.Error)
            {
                _refreshTokenStatus = RefreshTokenStatus.CanBeRefreshed;
            }

            return(_refreshTokenStatus != RefreshTokenStatus.Error);
        }
Example #3
0
        public static T Create(IRestHttpClient client, IConfiguration configuration)
        {
            object proxy = Create <T, ServiceProxy <T> >();

            ((ServiceProxy <T>)proxy).SetParameters(client, configuration);

            return((T)proxy);
        }
 public UploadImageService(
     IChatConfig chatConfig,
     IRestHttpClient httpClient,
     ILogManager logManager)
 {
     _chatConfig = chatConfig;
     _httpClient = httpClient;
     _logger     = logManager.GetLogger <UploadImageService>();
 }
Example #5
0
     this IRestHttpClient restHttpClient,
     BaseRestRequest request,
     ILogger logger,
     Func <TDto, TModel> dtoToModelConverter,
     bool ignoreCache)
 {
     try
     {
         if (!(restHttpClient is CachedHttpClient client))
Example #6
0
        public static async Task <TModel> GetModelAsync <TModel, TDto>(
            this IRestHttpClient restHttpClient,
            BaseRestRequest request,
            ILogger logger,
            Func <TDto, TModel> dtoToModelConverter)
        {
            var result = await restHttpClient.GetModelOrExceptionAsync(request, logger, dtoToModelConverter);

            return(result.Model);
        }
Example #7
0
 public AuthService(
     IJsonSerializer jsonSerializer,
     IRestHttpClient restHttpClient,
     ILogManager logManager,
     IAccountService accountService,
     AuthConfig authConfig)
 {
     _remoteAuthService = new RemoteAuthService(jsonSerializer, restHttpClient, logManager, authConfig);
     _accountService    = accountService;
 }
Example #8
0
 /// <summary>
 /// Загрузить данные в базу
 /// </summary>
 public static async Task <IResultError> PostData(IRestHttpClient restClientBoutique, IBoutiqueLogger boutiqueLogger) =>
 await restClientBoutique.ToResultValue().
 Void(_ => boutiqueLogger.ShowMessage("Начало загрузки данных")).
 ResultValueBindErrorsOkAsync(restClient => GenderUpload(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => CategoryUpload(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => ColorUpload(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => ClothesTypeUpload(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => SizeUpload(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => SizeGroupUpload(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => ClothesUpload(restClient, boutiqueLogger)).
 VoidTaskAsync(_ => boutiqueLogger.ShowMessage("Загрузка данных завершена"));
Example #9
0
 public RemoteAuthService(
     IJsonSerializer jsonSerializer,
     IRestHttpClient restHttpClient,
     ILogManager logManager,
     AuthConfig authConfig)
 {
     _jsonSerializer = jsonSerializer;
     _restHttpClient = restHttpClient;
     _authConfig     = authConfig;
     _logger         = logManager.GetLogger <RemoteAuthService>();
 }
Example #10
0
 public HttpChatAdapter(
     IRestHttpClient httpClient,
     ILogManager logManager,
     IJsonSerializer jsonSerializer,
     IChatConfig chatConfig)
 {
     _httpClient     = httpClient;
     _logger         = logManager.GetLogger <HttpChatAdapter>();
     _jsonSerializer = jsonSerializer;
     _chatConfig     = chatConfig;
 }
Example #11
0
 public StripeRemoteService(
     StripeConfig stripeConfig,
     IRestHttpClient restHttpClient,
     ILogManager logManager,
     IJsonSerializer jsonSerializer)
 {
     _stripeConfig   = stripeConfig;
     _restHttpClient = restHttpClient;
     _jsonSerializer = jsonSerializer;
     _logger         = logManager.GetLogger <StripeRemoteService>();
 }
Example #12
0
 /// <summary>
 /// Получить сервис одежды
 /// </summary>
 public static IClothesRestService GetClothesRestService(IRestHttpClient restHttpClient) =>
 new ClothesRestService(restHttpClient,
                        new ClothesTransferConverter(),
                        new ClothesDetailTransferConverter(new ColorTransferConverter(),
                                                           new SizeGroupMainTransferConverter(new SizeTransferConverter())),
                        new ClothesMainTransferConverter(new ClothesImageTransferConverter(),
                                                         new GenderTransferConverter(),
                                                         new ClothesTypeTransferConverter(),
                                                         new ColorTransferConverter(),
                                                         new SizeGroupMainTransferConverter(new SizeTransferConverter())),
                        new ClothesImageTransferConverter());
 public ClothesRestService(IRestHttpClient restHttpClient,
                           IClothesTransferConverter clothesTransferConverter,
                           IClothesDetailTransferConverter clothesDetailTransferConverter,
                           IClothesMainTransferConverter clothesMainTransferConverter,
                           IClothesImageTransferConverter clothesImageTransferConverter)
     : base(restHttpClient, clothesMainTransferConverter)
 {
     _clothesTransferConverter       = clothesTransferConverter;
     _clothesDetailTransferConverter = clothesDetailTransferConverter;
     _clothesImageTransferConverter  = clothesImageTransferConverter;
 }
Example #14
0
 /// <summary>
 /// Загрузить данные в базу
 /// </summary>
 public static async Task <IResultError> DeleteData(IRestHttpClient httpClient, IBoutiqueLogger boutiqueLogger) =>
 await httpClient.ToResultValue().
 Void(_ => boutiqueLogger.ShowMessage("Начало удаления данных")).
 ResultValueBindErrorsOkAsync(restClient => SizeGroupDelete(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => ClothesTypeDelete(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => GenderDelete(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => CategoryDelete(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => ColorDelete(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => SizeDelete(restClient, boutiqueLogger)).
 ResultValueBindErrorsOkBindAsync(restClient => ClothesDelete(restClient, boutiqueLogger)).
 VoidTaskAsync(_ => boutiqueLogger.ShowMessage("Удаление данных завершено"));
Example #15
0
 public StripeService(
     IRestHttpClient restHttpClient,
     ILogManager logManager,
     IMessageHub messageHub,
     IJsonSerializer jsonSerializer)
 {
     _restHttpClient = restHttpClient;
     _logManager     = logManager;
     _messageHub     = messageHub;
     _jsonSerializer = jsonSerializer;
 }
Example #16
0
 public StripeService(
     IRestHttpClient restHttpClient,
     ILogManager logManager,
     IMessageHub messageHub,
     IJsonSerializer jsonSerializer, Func <UIViewController> getUiViewControllerFunc)
 {
     _restHttpClient          = restHttpClient;
     _logManager              = logManager;
     _messageHub              = messageHub;
     _jsonSerializer          = jsonSerializer;
     _getUiViewControllerFunc = getUiViewControllerFunc;
 }
Example #17
0
        protected override async Task <RefreshTokenStatus> TryRefreshToken(IRestHttpClient restHttpClient)
        {
            var attemptCount = 3;
            var result       = RefreshTokenStatus.Error;
            var loginResult  = default(LoginResultDto);

            while (attemptCount > 0 && result != RefreshTokenStatus.Refreshed)
            {
                try
                {
                    _logger.Info("Try refresh access token...");
                    var request = new RefreshTokenRequest(_accountService.RefreshToken, _authConfig);
                    loginResult = await restHttpClient
                                  .TrySendAndDeserializeAsync <LoginResultDto>(request, _logger)
                                  .ConfigureAwait(false);

                    if (loginResult != null)
                    {
                        result = RefreshTokenStatus.Refreshed;
                    }

                    _logger.Info("Access token refreshed");
                }
                catch (Exception ex)
                {
                    _logger.Error(ex);
                }
                finally
                {
                    attemptCount--;
                }
            }

            if (loginResult != null)
            {
                try
                {
                    _accountService.ResetTokens(loginResult.AccessToken, loginResult.RefreshToken);
                    _logger.Info("Access token saved");
                }
                catch (Exception)
                {
                    _logger.Error("Access token is not saved");
                }
            }

            if (result == RefreshTokenStatus.Error)
            {
                //TODO: logout
            }

            return(result);
        }
Example #18
0
        public RestApiClient(AppSettings appSettings, ICache cache, IRestHttpClient httpClient)
        {
            if (appSettings == null)
            {
                throw new ArgumentNullException(nameof(appSettings));
            }

            _cache = cache ?? throw new ArgumentNullException(nameof(cache));

            _httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient));

            _baseUrl = $"https://{appSettings.Account}.visualstudio.com";
        }
Example #19
0
 public ApprovalsApiClient(IRestHttpClient client)
 {
     _client = client;
 }
 protected abstract Task <RefreshTokenStatus> TryRefreshToken(IRestHttpClient restHttpClient);
Example #21
0
 /// <summary>
 /// Получить сервис размера одежды
 /// </summary>
 public static ISizeGroupRestService GetSizeGroupRestService(IRestHttpClient restHttpClient) =>
 new SizeGroupRestService(restHttpClient,
                          new SizeGroupMainTransferConverter(new SizeTransferConverter()));
Example #22
0
 public RoatpService(IRoatpApiHttpClientFactory roatpApiHttpClientFactory)
 {
     _client = roatpApiHttpClientFactory.CreateClient();
 }
Example #23
0
 public ProviderService(IRoatpApiHttpClientFactory roatpApiHttpClientFactory)
 {
     _client = roatpApiHttpClientFactory.CreateRestHttpClient();
 }
Example #24
0
 /// <summary>
 ///  Получить сервис авторизации
 /// </summary>
 public static IAuthorizeRestService GetAuthorizeRestService(IRestHttpClient restHttpClient) =>
 new AuthorizeRestService(restHttpClient, new AuthorizeTransferConverter());
Example #25
0
 public StreamApiService(IRestHttpClient httpClient)
 {
     _httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient));
 }
Example #26
0
 /// <summary>
 /// Получить сервис категорий одежды
 /// </summary>
 public static IColorRestService GetColorRestService(IRestHttpClient restHttpClient) =>
 new ColorRestService(restHttpClient, new ColorTransferConverter());
Example #27
0
 /// <summary>
 /// Получить сервис типа пола
 /// </summary>
 public static IGenderRestService GetGenderRestService(IRestHttpClient restHttpClient) =>
 new GenderRestService(restHttpClient, new GenderTransferConverter(),
                       new ClothesTypeTransferConverter().
                       Map(clothesTypeConverter => new CategoryClothesTypeTransferConverter(clothesTypeConverter)).
                       Map(categoryConverter => new GenderCategoryTransferConverter(categoryConverter)));
Example #28
0
 /// <summary>
 /// Получить сервис типа одежды
 /// </summary>
 public static IClothesTypeRestService GetClothesTypeRestService(IRestHttpClient restHttpClient) =>
 new ClothesTypeRestService(restHttpClient,
                            new ClothesTypeMainTransferConverter(new CategoryTransferConverter()));
Example #29
0
 public RegistrationService(ILog log, IRegistrationApiHttpClientFactory registrationApiHttpClientFactory)
 {
     _log        = log;
     _httpClient = registrationApiHttpClientFactory.CreateRestHttpClient();
 }
Example #30
0
 /// <summary>
 /// Получить сервис категорий одежды
 /// </summary>
 public static ICategoryRestService GetCategoryRestService(IRestHttpClient restHttpClient) =>
 new CategoryRestService(restHttpClient, new CategoryMainTransferConverter(new GenderTransferConverter()));