public async Task CreateFreeze(string companyId, DataVersionType dataVersionType) { var token = await _tokenProvider.GetBearerTokenAsync("AtlasApiOAuth2"); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var endPoint = $"{_applicationDetail.Value.Endpoints.FreezeUrl}/{{company}}/freezes"; var requestUri = new Uri(endPoint.Replace("{company}", companyId, StringComparison.InvariantCultureIgnoreCase)); _logger.LogInformation($"Calling Atlas API {requestUri.ToString()}."); var response = await _client.PostAsJsonAsync(requestUri, new { DataVersionTypeId = dataVersionType }); if (!response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); _logger.LogError("Calling Atlas API failed with status code {Atlas_HttpResponseStatusCode} and content {Atlas_HttpResponseContent}.", response.StatusCode, content); throw new AtlasTechnicalException(content); } }
private async Task CreateFreeze(ICollection <BatchCompany> companies, DataVersionType dataVersionType) { try { foreach (var company in companies.OrderBy(c => c.Order)) { _logger.LogInformation("Start batch to create freeze for company {Atlas_CompanyId}.", company.CompanyId); await _atlasService.CreateFreeze(company.CompanyId, dataVersionType); } } catch (Exception e) { _logger.LogError(e, "Error creating freeze."); throw; } }
public async Task <int> CreateFreezeAsync(string companyId, DateTime freezeDate, DataVersionType dataVersionTypeId) { var queryParameters = new DynamicParameters(); queryParameters.Add("@CompanyId", companyId); queryParameters.Add("@DataVersionTypeId", dataVersionTypeId); queryParameters.Add("@FreezeDate", freezeDate); queryParameters.Add("@NewDataVersionId", dbType: DbType.Int32, direction: ParameterDirection.Output); await ExecuteNonQueryAsync(StoredProcedureNames.CreateFreeze, queryParameters, true); var dataVersionId = queryParameters.Get <int>("@NewDataVersionId"); return(dataVersionId); }
public async Task <DataVersion> GetFreezeAsync(string companyId, DateTime freezeDate, DataVersionType dataVersionTypeId) { var queryParameters = new DynamicParameters(); string[] selectedCompanies = new string[] { companyId }; queryParameters.Add("@CompanyId", ToSelectedCompanyTVP(selectedCompanies)); queryParameters.Add("@FreezeDate", freezeDate); queryParameters.Add("@DataVersionTypeId", dataVersionTypeId); var freeze = await ExecuteQueryFirstOrDefaultAsync <DataVersion>(StoredProcedureNames.GetFreeze, queryParameters); return(freeze); }
public async Task <bool> GetDuplicatedFreezeAsync(string company, DateTime freezeDate, DataVersionType dataVersionTypeId) { var queryParameters = new DynamicParameters(); queryParameters.Add("@CompanyId", company); queryParameters.Add("@DataVersionTypeId", dataVersionTypeId); queryParameters.Add("@FreezeDate", freezeDate); queryParameters.Add("@IsLocked", dbType: DbType.Boolean, direction: ParameterDirection.Output); await ExecuteQueryFirstOrDefaultAsync <bool>(StoredProcedureNames.IsFreezeDuplicated, queryParameters); var isFreezeDuplicated = queryParameters.Get <bool>("@IsLocked"); return(isFreezeDuplicated); }