/// <summary>
 /// Initializes a new instance of the <see cref="UserVoteController"/> class.
 /// </summary>
 /// <param name="logger">Logger implementation to send logs to the logger service.</param>
 /// <param name="telemetryClient">The Application Insights telemetry client.</param>
 /// <param name="userVoteStorageProvider">Instance of user vote storage provider to add and delete user vote.</param>
 /// <param name="teamIdeaStorageProvider">Instance of team post storage provider to update post and get information of posts.</param>
 /// <param name="teamIdeaSearchService">The team post search service dependency injection.</param>
 public UserVoteController(
     ILogger <UserVoteController> logger,
     TelemetryClient telemetryClient,
     IUserVoteStorageProvider userVoteStorageProvider,
     IIdeaStorageProvider teamIdeaStorageProvider,
     IIdeaSearchService teamIdeaSearchService)
     : base(telemetryClient)
 {
     this.logger = logger;
     this.userVoteStorageProvider = userVoteStorageProvider;
     this.teamIdeaStorageProvider = teamIdeaStorageProvider;
     this.teamIdeaSearchService   = teamIdeaSearchService;
     this.retryPolicy             = Policy.Handle <StorageException>(ex => ex.RequestInformation.HttpStatusCode == StatusCodes.Status412PreconditionFailed)
                                    .WaitAndRetryAsync(Backoff.ConstantBackoff(TimeSpan.FromMilliseconds(250), 25));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="IdeaController"/> class.
 /// </summary>
 /// <param name="logger">Logger implementation to send logs to the logger service.</param>
 /// <param name="telemetryClient">The Application Insights telemetry client.</param>
 /// <param name="ideaStorageHelper">Team post storage helper dependency injection.</param>
 /// <param name="ideaStorageProvider">Team idea storage provider dependency injection.</param>
 /// <param name="ideaSearchService">The team post search service dependency injection.</param>
 /// <param name="categoryStorageProvider">Category storage provider dependency injection.</param>
 /// <param name="teamCategoryStorageProvider">Team category storage provider dependency injection.</param>
 public IdeaController(
     ILogger <IdeaController> logger,
     TelemetryClient telemetryClient,
     IIdeaStorageHelper ideaStorageHelper,
     IIdeaStorageProvider ideaStorageProvider,
     IIdeaSearchService ideaSearchService,
     ICategoryStorageProvider categoryStorageProvider,
     ITeamCategoryStorageProvider teamCategoryStorageProvider)
     : base(telemetryClient)
 {
     this.logger                      = logger;
     this.ideaStorageHelper           = ideaStorageHelper;
     this.ideaSearchService           = ideaSearchService;
     this.ideaStorageProvider         = ideaStorageProvider;
     this.categoryStorageProvider     = categoryStorageProvider;
     this.teamCategoryStorageProvider = teamCategoryStorageProvider;
 }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IdeaSearchService"/> class.
 /// </summary>
 /// <param name="optionsAccessor">A set of key/value application configuration properties.</param>
 /// <param name="teamIdeaStorageProvider">Team idea storage provider dependency injection.</param>
 /// <param name="logger">Logger implementation to send logs to the logger service.</param>
 /// <param name="searchServiceClient">Search service client dependency injection.</param>
 /// <param name="searchIndexClient">Search index client dependency injection.</param>
 public IdeaSearchService(
     IOptions <SearchServiceSettings> optionsAccessor,
     IIdeaStorageProvider teamIdeaStorageProvider,
     ILogger <IdeaSearchService> logger,
     SearchServiceClient searchServiceClient,
     SearchIndexClient searchIndexClient)
 {
     optionsAccessor              = optionsAccessor ?? throw new ArgumentNullException(nameof(optionsAccessor));
     this.options                 = optionsAccessor.Value;
     this.initializeTask          = new Lazy <Task>(() => this.InitializeAsync());
     this.teamIdeaStorageProvider = teamIdeaStorageProvider;
     this.logger = logger;
     this.searchServiceClient = searchServiceClient;
     this.searchIndexClient   = searchIndexClient;
     this.retryPolicy         = Policy.Handle <CloudException>(
         ex => (int)ex.Response.StatusCode == StatusCodes.Status409Conflict ||
         (int)ex.Response.StatusCode == StatusCodes.Status429TooManyRequests)
                                .WaitAndRetryAsync(Backoff.LinearBackoff(TimeSpan.FromMilliseconds(2000), 2));
 }