Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }