예제 #1
0
 /// <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;
 }
예제 #2
0
        /// <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();
        }