private async Task PrepareEngineAsync(Func <IEnumerable <string> > getIpAddresses, CancellationToken cancellationToken) { // Create a new pool var newPoolName = await _client.IpPools.CreateAsync(_warmupSettings.PoolName, cancellationToken).ConfigureAwait(false); // Get the ip addresses var ipAddresses = getIpAddresses().ToArray(); // Add each address to the new pool foreach (var ipAddress in ipAddresses) { await _client.IpPools.AddAddressAsync(newPoolName, ipAddress, cancellationToken).ConfigureAwait(false); } // Record the start of process var warmupStatus = new WarmupStatus() { Completed = false, DateLastSent = DateTime.MinValue, EmailsSentLastDay = 0, IpAddresses = ipAddresses, PoolName = newPoolName, WarmupDay = 0 }; await _warmupProgressRepository.UpdateStatusAsync(warmupStatus, cancellationToken).ConfigureAwait(false); }
private void CreateOrUpdateStatusFile(WarmupStatus warmupStatus) { var fileName = GetStatusFilePath(warmupStatus.PoolName); using (var streamWriter = File.CreateText(fileName)) { var serializer = new JsonSerializer() { Formatting = Formatting.Indented }; serializer.Serialize(streamWriter, warmupStatus); } }
/// <summary> /// Update the progress of the warmup proces for a given pool. /// </summary> /// <param name="warmupStatus">The status of the warmup process.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>The task.</returns> public Task UpdateStatusAsync(WarmupStatus warmupStatus, CancellationToken cancellationToken = default) { var fileName = GetStatusFilePath(warmupStatus.PoolName); using (var stream = File.Create(fileName)) { var options = new JsonSerializerOptions() { WriteIndented = false }; return(JsonSerializer.SerializeAsync(stream, warmupStatus, options, cancellationToken)); } }
/// <summary> /// Update the progress of the warmup proces for a given pool. /// </summary> /// <param name="warmupStatus">The status of the warmup process</param> /// <param name="cancellationToken">The cancellation token</param> /// <returns>The task</returns> public Task UpdateStatusAsync(WarmupStatus warmupStatus, CancellationToken cancellationToken = default(CancellationToken)) { _progressInfo[warmupStatus.PoolName] = warmupStatus; return(Task.FromResult(true)); }
/// <summary> /// Update the progress of the warmup proces for a given pool. /// </summary> /// <param name="warmupStatus">The status of the warmup process.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>The task.</returns> public Task UpdateStatusAsync(WarmupStatus warmupStatus, CancellationToken cancellationToken = default(CancellationToken)) { CreateOrUpdateStatusFile(warmupStatus); return(Task.FromResult(true)); }