public async Task <ConditionTypeDto> GetBy(Guid tenantId, int code) { if (tenantId == Guid.Empty) { throw new ArgumentException($"The provided tenant Id is invalid: { tenantId }", nameof(tenantId)); } if (code <= 0) { throw new ArgumentException($"The provided condition type code is invalid: { code }", nameof(code)); } ConditionTypeKey key = ConditionTypeKey.New(tenantId, code); return(await this.conditionTypeRepository.GetById(key) .ContinueWith(conditionTypeTask => { ConditionType conditionType = conditionTypeTask.GetAwaiter().GetResult(); if (conditionType != null) { return this.ConvertToDto(conditionType); } return null; })); }
private async Task <IConditionNode> CreateConditionNodeRecursive(Guid tenantId, CreateConditionNodeBase createConditionNodeBase) { switch (createConditionNodeBase) { case CreateComposedConditionNode cccn: LogicalOperatorCodes logicalOperatorCode = (LogicalOperatorCodes)cccn.LogicalOperatorCode; List <IConditionNode> conditionNodes = new List <IConditionNode>(); foreach (CreateConditionNodeBase ccnb in cccn.ChildNodes) { IConditionNode conditionNode = await this.CreateConditionNodeRecursive(tenantId, ccnb); conditionNodes.Add(conditionNode); } return(this.conditionNodeAbstractFactory.CreateComposedConditionNode(logicalOperatorCode, conditionNodes)); case CreateValueConditionNode cvcn: ConditionTypeKey conditionTypeKey = ConditionTypeKey.New(tenantId, cvcn.ConditionTypeCode); ConditionType conditionType = await this.conditionTypeRepository.GetById(conditionTypeKey); DataTypeCodes dataTypeCode = (DataTypeCodes)cvcn.DataTypeCode; OperatorCodes operatorCode = (OperatorCodes)cvcn.OperatorCode; return(this.conditionNodeAbstractFactory.CreateValueConditionNode(conditionType, dataTypeCode, operatorCode, cvcn.RightHandOperand)); default: throw new NotSupportedException("Unsupported condition node creation."); } }
public async Task Remove(Guid tenantId, int code) { ConditionTypeKey key = ConditionTypeKey.New(tenantId, code); ConditionType conditionType = await this.conditionTypeRepository.GetById(key); if (conditionType == null) { throw new NotFoundException(FormattableString.Invariant($"{nameof(ConditionType)} was not found. Key = {key}")); } await this.conditionTypeRepository.Remove(conditionType); }
protected override string ValidateCurrent(CreateValueConditionNode createValueConditionNode, Guid tenantId) { ConditionTypeKey conditionTypeKey = ConditionTypeKey.New(tenantId, createValueConditionNode.ConditionTypeCode); ConditionType conditionType = this.conditionTypeRepository.GetById(conditionTypeKey).GetAwaiter().GetResult(); if (conditionType == null) { return(string.Format(InvariantResources.R007, tenantId, createValueConditionNode.ConditionTypeCode)); } return(null); }
public async Task <ConditionTypeDto> Update(ConditionTypeDto conditionTypeDto) { ConditionTypeKey key = ConditionTypeKey.New(conditionTypeDto.TenantId, conditionTypeDto.Code); ConditionType conditionType = await this.conditionTypeRepository.GetById(key); if (conditionType == null) { throw new NotFoundException(FormattableString.Invariant($"{nameof(ConditionType)} was not found. Key = {key}")); } conditionType.Name = conditionTypeDto.Name; conditionType.Description = conditionTypeDto.Description; return(await this.conditionTypeRepository.Update(conditionType) .ContinueWith(tenantTask => { tenantTask.GetAwaiter().GetResult(); return this.ConvertToDto(conditionType); })); }