public async Task SetWatchExpiration(WatchExpiration watchExpiration) { WatchExpiration watchExpirationTemp = null; IList <WatchExpiration> watchExpirationList = await this.GetWatchExpiration(); if (watchExpirationList != null) { // Check for and remove previous record. watchExpirationTemp = watchExpirationList.FirstOrDefault(e => e.FolderId.Equals(watchExpiration.FolderId)); if (watchExpirationTemp != null) { watchExpirationList.Remove(watchExpirationTemp); } } else { watchExpirationList = new List <WatchExpiration>(); } watchExpirationList.Add(watchExpiration); var jsonSerializedExpiration = JsonConvert.SerializeObject(watchExpirationList); var request = new HttpRequestMessage { Method = HttpMethod.Put, RequestUri = new Uri($"http://infra.io.vtex.com/vbase/v2/{this._httpContextAccessor.HttpContext.Request.Headers[DriveImportConstants.VTEX_ACCOUNT_HEADER_NAME]}/{this._environmentVariableProvider.Workspace}/buckets/{this._applicationName}/{DriveImportConstants.BUCKET}/files/{DriveImportConstants.WATCH_EXPIRATION}"), Content = new StringContent(jsonSerializedExpiration, Encoding.UTF8, DriveImportConstants.APPLICATION_JSON) }; string authToken = this._httpContextAccessor.HttpContext.Request.Headers[DriveImportConstants.HEADER_VTEX_CREDENTIAL]; if (authToken != null) { request.Headers.Add(DriveImportConstants.AUTHORIZATION_HEADER_NAME, authToken); request.Headers.Add(DriveImportConstants.VTEX_ID_HEADER_NAME, authToken); } var client = _clientFactory.CreateClient(); var response = await client.SendAsync(request); string responseContent = await response.Content.ReadAsStringAsync(); _context.Vtex.Logger.Info("SetWatchExpiration", null, $"[{response.StatusCode}] {responseContent}"); response.EnsureSuccessStatusCode(); }
public async Task <WatchExpiration> GetWatchExpiration(string folderId) { WatchExpiration watchExpiration = null; IList <WatchExpiration> watchExpirationList = await this.GetWatchExpiration(); if (watchExpirationList != null) { watchExpiration = watchExpirationList.FirstOrDefault(e => e.FolderId.Equals(folderId)); } if (watchExpiration == null) { watchExpiration = new WatchExpiration { ExpiresAt = DateTime.Now, FolderId = folderId }; } return(watchExpiration); }