/// <summary> /// Initializes a new instance of the <see cref="ActivityHelper"/> class. /// </summary> /// <param name="logger">Instance to send logs to the Application Insights service.</param> /// <param name="localizer">The current cultures' string localizer.</param> /// <param name="teamGoalStorageProvider">Storage provider for working with team goal data in storage.</param> /// <param name="personalGoalSearchService">Personal goal search service which will help in retrieving aligned goals information.</param> public ActivityHelper( ILogger <ActivityHelper> logger, IStringLocalizer <Strings> localizer, ITeamGoalStorageProvider teamGoalStorageProvider, IPersonalGoalSearchService personalGoalSearchService) { this.logger = logger; this.localizer = localizer; this.teamGoalStorageProvider = teamGoalStorageProvider; this.personalGoalSearchService = personalGoalSearchService; }
/// <summary> /// Initializes a new instance of the <see cref="PersonalGoalStorageProvider"/> class. /// Handles storage read write operations. /// </summary> /// <param name="storageOptions">A set of key/value application configuration properties for storage.</param> /// <param name="logger">Instance to send logs to the Application Insights service.</param> /// <param name="personalGoalSearchService">Personal goal search service which will help in retrieving aligned goals information.</param> public PersonalGoalStorageProvider( IOptionsMonitor <StorageOptions> storageOptions, ILogger <PersonalGoalStorageProvider> logger, IPersonalGoalSearchService personalGoalSearchService) : base(storageOptions, PersonalGoalDetailTableName) { personalGoalSearchService = personalGoalSearchService ?? throw new ArgumentNullException(nameof(personalGoalSearchService)); this.logger = logger; this.personalGoalSearchService = personalGoalSearchService; // Index creation takes time due to which search service is not able to fetch team goal status for the first time when application is deployed. // This will ensure index is created when application is deployed. this.personalGoalSearchService.EnsureInitializedAsync(); }