/// <inheritdoc/> public async Task DeleteAsync( DimensionStructure tobeDeleted, CancellationToken cancellationToken = default) { try { Check.IsNotNull(tobeDeleted); await _masterDataValidators.DimensionStructureValidator.ValidateAsync(tobeDeleted, o => { o.IncludeRuleSets(DimensionStructureValidatorRulesets.Delete); o.ThrowOnFailures(); }, cancellationToken).ConfigureAwait(false); using (MasterDataContext ctx = new MasterDataContext(_dbContextOptions)) { DimensionStructure res = await ctx.DimensionStructures .FirstOrDefaultAsync(w => w.Id == tobeDeleted.Id, cancellationToken).ConfigureAwait(false); if (res != null) { ctx.DimensionStructures.Remove(res); await ctx.SaveChangesAsync(cancellationToken).ConfigureAwait(false); } } } catch (Exception e) { string msg = $"{nameof(MasterDataDimensionStructureBusinessLogic)}." + $"{nameof(DeleteAsync)} operation failed. " + $"For further details see inner exception!"; throw new MasterDataBusinessLogicDimensionStructureDatabaseOperationException(msg, e); } }
/// <inheritdoc/> public async Task <DimensionStructure> GetByIdAsync( DimensionStructure dimensionStructure, CancellationToken cancellationToken = default) { try { Check.IsNotNull(dimensionStructure); await _masterDataValidators.DimensionStructureValidator.ValidateAsync(dimensionStructure, o => { o.IncludeRuleSets(DimensionStructureValidatorRulesets.GetById); o.ThrowOnFailures(); }, cancellationToken).ConfigureAwait(false); using (MasterDataContext ctx = new MasterDataContext(_dbContextOptions)) { DimensionStructure result = await ctx.DimensionStructures .FirstOrDefaultAsync(w => w.Id == dimensionStructure.Id, cancellationToken) .ConfigureAwait(false); return(result); } } catch (Exception e) { string msg = $"{nameof(MasterDataDimensionBusinessLogic)}.{nameof(GetByIdAsync)} " + $"operation failed. For further info see inner exception."; throw new MasterDataBusinessLogicDimensionStructureDatabaseOperationException(msg, e); } }
/// <inheritdoc/> public async Task <DilibHttpClientResponse <DimensionStructure> > GetByIdAsync( DimensionStructure requested, CancellationToken cancellationToken = default) { Check.IsNotNull(requested); string url = $"{MasterDataApi.DimensionStructure.RouteBase}/{MasterDataApi.DimensionStructure.V1.GetById}"; DilibHttpClientResponse <DimensionStructure> result = await _diLibHttpClient .PostAsync <DimensionStructure>(url, requested, cancellationToken) .ConfigureAwait(false); return(result); }
/// <inheritdoc/> public async Task <DilibHttpClientResponse <DimensionStructure> > UpdateAsync( DimensionStructure payload, CancellationToken cancellationToken = default) { Check.IsNotNull(payload); string url = $"{MasterDataApi.DimensionStructure.RouteBase}/{MasterDataApi.DimensionStructure.V1.Update}"; DilibHttpClientResponse <DimensionStructure> result = await _diLibHttpClient .PutAsync <DimensionStructure>(url, payload, cancellationToken) .ConfigureAwait(false); return(result); }
public void ThenDimensionStructureIdPropertyIs(Table table) { KeyExpectedValueEntity instance = table.CreateInstance <KeyExpectedValueEntity>(); DimensionStructure result = _scenarioContext[instance.Key] as DimensionStructure; Check.IsNotNull(result); int exp = Convert.ToInt32(instance.ExpectedValue); result.IsActive.Should().Be(exp); }
public void ThenDimensionStructureIsActivePropertyEqualsTo(Table table) { KeyComparedToEntity instance = table.CreateInstance <KeyComparedToEntity>(); DimensionStructure dimensionStructure = _scenarioContext[instance.Key] as DimensionStructure; Check.IsNotNull(dimensionStructure); DimensionStructure comparedTo = _scenarioContext[instance.ComparedTo] as DimensionStructure; Check.IsNotNull(comparedTo); dimensionStructure.IsActive.Should().Be(comparedTo.IsActive); }
public async Task Throw_WhenInputObjectIsNull() { // Arrange DimensionStructure queryObject = null; // Action Func <Task> action = async() => { await _masterDataBusinessLogic .MasterDataDimensionStructureBusinessLogic .InactivateAsync(queryObject) .ConfigureAwait(false); }; // Assert action.Should().ThrowExactly <MasterDataBusinessLogicDimensionStructureDatabaseOperationException>(); }
public async Task WhenADimensionStructureIsRequested(Table table) { KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>(); DimensionStructure requested = _scenarioContext[instance.Key] as DimensionStructure; DilibHttpClientResponse <DimensionStructure> result = await _masterDataHttpClient .DimensionStructureHttpClient .GetByIdAsync(requested) .ConfigureAwait(false); if (result.IsSuccess) { _scenarioContext.Add(instance.ResultKey, result.Result); } else { _scenarioContext.Add(instance.ResultKey, result.HttpStatusCode); } }
public async Task GivenDimensionStructureIsSentToTheAddEndpoint(Table table) { KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>(); DimensionStructure saved = _scenarioContext[instance.Key] as DimensionStructure; DilibHttpClientResponse <DimensionStructure> result = await _masterDataHttpClient .DimensionStructureHttpClient .AddAsync(saved) .ConfigureAwait(false); if (result.IsSuccess) { _scenarioContext.Add(instance.ResultKey, result.Result); } else { _scenarioContext.Add(instance.ResultKey, result.HttpStatusCode); } }
public async Task Throw_WhenInputIsInvalid() { // Arrange DimensionStructure query = new DimensionStructure() { Id = 0, }; // Action Func <Task> task = async() => { await _masterDataBusinessLogic .MasterDataDimensionStructureBusinessLogic .GetByIdAsync(query) .ConfigureAwait(false); }; // Assert task.Should().ThrowExactly <MasterDataBusinessLogicDimensionStructureDatabaseOperationException>(); }
public async Task ThenADimensionStructureIsRequestedResultIs(Table table) { KeyExpectedValueEntity instance = table.CreateInstance <KeyExpectedValueEntity>(); DimensionStructure dimensionStructure = _scenarioContext[instance.Key] as DimensionStructure; DilibHttpClientResponse <DimensionStructure> result = await _masterDataHttpClient .DimensionStructureHttpClient .GetByIdAsync(dimensionStructure) .ConfigureAwait(false); if (result.IsSuccess) { result.Result.Should().BeNull(); } else { result.IsSuccess.Should().BeTrue(); } }
public async Task Return_TheSpecifiedEntity() { // Arrange DimensionStructure orig = _dimensionStructureFaker.Generate(); DimensionStructure origResult = await _masterDataBusinessLogic .MasterDataDimensionStructureBusinessLogic .AddAsync(orig) .ConfigureAwait(false); // Action DimensionStructure result = await _masterDataBusinessLogic .MasterDataDimensionStructureBusinessLogic .GetByIdAsync(origResult) .ConfigureAwait(false); // Assert result.Id.Should().Be(origResult.Id); result.Name.Should().Be(origResult.Name); result.Desc.Should().Be(origResult.Desc); result.IsActive.Should().Be(origResult.IsActive); }
public async Task ThereIsAParametrizedDimensionStructureDomainObject(Table table) { ThereIsAParametrizedDimensionStructureDomainObjectEntity instance = table .CreateInstance <ThereIsAParametrizedDimensionStructureDomainObjectEntity>(); string Name = ObjectPropertyValueHelper.CreateStringValueForProperty( instance.Name, FilterRules.StringValueFilters); string Desc = ObjectPropertyValueHelper.CreateStringValueForProperty( instance.Desc, FilterRules.StringValueFilters); DimensionStructure dimensionStructure = new DimensionStructure { Name = Name, Desc = Desc, IsActive = int.Parse(instance.IsActive), }; _scenarioContext.Add(instance.Key, dimensionStructure); }
/// <inheritdoc/> public async Task InactivateAsync( DimensionStructure dimensionStructure, CancellationToken cancellationToken = default) { using (MasterDataContext ctx = new MasterDataContext(_dbContextOptions)) { try { Check.IsNotNull(dimensionStructure); await _masterDataValidators.DimensionStructureValidator.ValidateAsync( dimensionStructure, options => { options.IncludeRuleSets(DimensionStructureValidatorRulesets.Inactivate); options.ThrowOnFailures(); }, cancellationToken) .ConfigureAwait(false); DimensionStructure toBeDeleted = await ctx.DimensionStructures.FirstOrDefaultAsync( w => w.Id == dimensionStructure.Id, cancellationToken) .ConfigureAwait(false); string msg = $"There is no {nameof(DimensionStructure)} entity " + $"with id: {dimensionStructure.Id}."; Check.IsNotNull(toBeDeleted, msg); toBeDeleted.IsActive = 0; ctx.Entry(toBeDeleted).State = EntityState.Modified; await ctx.SaveChangesAsync(cancellationToken).ConfigureAwait(false); } catch (Exception e) { string msg = $"{nameof(MasterDataDimensionStructureBusinessLogic)}." + $"{nameof(InactivateAsync)} operation failed! " + $"For further info see inner exception!"; throw new MasterDataBusinessLogicDimensionStructureDatabaseOperationException(msg, e); } } }
public async Task Inactivate_SpecifiedEntity() { // Arrange List <DimensionStructure> createdEntities = await CreateActiveDimensionStructureEntities(5); DimensionStructure toBeInactivated = createdEntities.ElementAt(3); // Action await _masterDataBusinessLogic.MasterDataDimensionStructureBusinessLogic .InactivateAsync(toBeInactivated) .ConfigureAwait(false); // Assert DimensionStructure result = await _masterDataBusinessLogic.MasterDataDimensionStructureBusinessLogic .GetByIdAsync(toBeInactivated) .ConfigureAwait(false); result.IsActive.Should().Be(0); result.Name.Should().Be(toBeInactivated.Name); result.Desc.Should().Be(toBeInactivated.Desc); result.Id.Should().Be(toBeInactivated.Id); }
/// <inheritdoc/> public async Task <DimensionStructure> AddAsync( DimensionStructure dimensionStructure, CancellationToken cancellationToken = default) { using (MasterDataContext ctx = new MasterDataContext(_dbContextOptions)) { try { Check.IsNotNull(dimensionStructure); await _masterDataValidators.DimensionStructureValidator.ValidateAsync(dimensionStructure, o => { o.IncludeRuleSets(DimensionStructureValidatorRulesets.AddAsync); o.ThrowOnFailures(); }, cancellationToken).ConfigureAwait(false); DimensionStructure newDimensionStructure = new DimensionStructure { Name = dimensionStructure.Name, Desc = dimensionStructure.Desc, IsActive = dimensionStructure.IsActive, }; await ctx.DimensionStructures.AddAsync( newDimensionStructure, cancellationToken) .ConfigureAwait(false); await ctx.SaveChangesAsync(cancellationToken).ConfigureAwait(false); return(newDimensionStructure); } catch (Exception e) { string msg = $"{nameof(MasterDataDimensionStructureBusinessLogic)}." + $"{nameof(AddAsync)} operation failed. For further info see inner exception."; throw new MasterDataBusinessLogicDimensionStructureDatabaseOperationException(msg, e); } } }