private bool ValidateCTCTIFilter(CursorFilterTypeCTCTI f) { return(!string.IsNullOrEmpty(f.Connection) && !string.IsNullOrEmpty(f.Category) && !string.IsNullOrEmpty(f.Connection2) && !string.IsNullOrEmpty(f.Category2) && !string.IsNullOrEmpty(f.Item)); }
protected override void ProcessRecord() { ICursorFilter filter = null; if (F.IsPresent) { var f = new CursorFilterTypeF(clauseNumber) { FieldName = fieldName, Qualifier = qualifier, MatchCase = matchCase }; if (qualifier == FilterQualifier.Between) { f.FilterBetweenStartValue = fieldValue; f.FilterBetweenEndValue = fieldValue2; } if (qualifier.GetAttribute <FilterValuesAttribute>()?.Number == 1) { f.FieldValue = fieldValue; } filter = f; } if (CTI.IsPresent) { var cti = new CursorFilterTypeCTI(clauseNumber) { Connection = connection, Category = categoryName, Item = item }; filter = cti; } if ((CTCF.IsPresent)) { var ctcf = new CursorFilterTypeCTCF(clauseNumber) { Connection = connection, Category = categoryName, FieldName = fieldName, Qualifier = qualifier, MatchCase = matchCase }; if (qualifier == FilterQualifier.Between) { ctcf.FilterBetweenStartValue = fieldValue; ctcf.FilterBetweenEndValue = fieldValue2; } if (qualifier.GetAttribute <FilterValuesAttribute>()?.Number == 1) { ctcf.FieldValue = fieldValue; } filter = ctcf; } if (CTCTI.IsPresent) { ICursorFilterTypeCTCTI ctcti = new CursorFilterTypeCTCTI(clauseNumber) { Connection = connection, Category = categoryName, Connection2 = connection2, Category2 = toCategoryName2, Item = item }; filter = ctcti; } filter.Except = except; filter.OrFilter = orFilter; WriteVerbose($"Resulting filterstring is: {filter}, conjunction is: [{(filter.OrFilter ? "OR" : "AND")}]"); WriteObject(filter, false); }
protected override void ProcessRecord() { ICursorFilter filter;; switch (_type) { case FilterType.Field: var f = new CursorFilterTypeF(clauseNumber) { FieldName = fieldName, Qualifier = qualifier, MatchCase = matchCase }; if (qualifier == FilterQualifier.Between) { f.FilterBetweenStartValue = fieldValue; f.FilterBetweenEndValue = fieldValue2; } if (qualifier.GetAttribute <FilterValuesAttribute>()?.Number == 1) { f.FieldValue = fieldValue; } filter = f; break; case FilterType.ConnectionToItem: var cti = new CursorFilterTypeCTI(clauseNumber) { Connection = connection, Category = categoryName, Item = item }; filter = cti; break; case FilterType.ConnectionToCategoryField: var ctcf = new CursorFilterTypeCTCF(clauseNumber) { Connection = connection, Category = categoryName, FieldName = fieldName, Qualifier = qualifier, MatchCase = matchCase }; if (qualifier == FilterQualifier.Between) { ctcf.FilterBetweenStartValue = fieldValue; ctcf.FilterBetweenEndValue = fieldValue2; } if (qualifier.GetAttribute <FilterValuesAttribute>()?.Number == 1) { ctcf.FieldValue = fieldValue; } filter = ctcf; break; case FilterType.ConnectionToCategoryToItem: ICursorFilterTypeCTCTI ctcti = new CursorFilterTypeCTCTI(clauseNumber) { Connection = connection, Category = categoryName, Connection2 = connection2, Category2 = toCategoryName2, Item = item }; filter = ctcti; break; default: throw new System.ArgumentException("Invalid or missing FilterType"); } filter.Except = except; filter.OrFilter = orFilter; WriteVerbose($"Resulting filterstring is: {filter}, conjunction is: [{(filter.OrFilter ? "OR" : "AND")}]"); WriteObject(filter, false); }
protected override void ProcessRecord() { // TODO: should we include a check for checking the Qualifier and chosen fieldtype? ICursorFilter filter; switch (_type) { case FilterType.Field: GetCmcFilterCommandDynamicParametersF ctxF = context as GetCmcFilterCommandDynamicParametersF; var f = new CursorFilterTypeF(clauseNumber) { FieldName = ctxF.FieldName, Qualifier = ctxF.Qualifier, MatchCase = ctxF.MatchCase }; if (f.Qualifier == FilterQualifier.Between) { f.FilterBetweenStartValue = ctxF.FieldValue; f.FilterBetweenEndValue = ctxF.FieldValue2; } if (f.Qualifier.GetAttribute <FilterValuesAttribute>()?.Number == 1) { f.FieldValue = ((GetCmcFilterCommandDynamicParametersF)context).FieldValue; } filter = f; break; case FilterType.ConnectionToItem: GetCmcFilterCommandDynamicParametersCTI ctxCti = context as GetCmcFilterCommandDynamicParametersCTI; var cti = new CursorFilterTypeCTI(clauseNumber) { Connection = ctxCti.Connection, Category = ctxCti.ToCategoryName, Item = ctxCti.Item }; filter = cti; break; case FilterType.ConnectionToCategoryField: GetCmcFilterCommandDynamicParametersCTCF ctxCtcf = context as GetCmcFilterCommandDynamicParametersCTCF; var ctcf = new CursorFilterTypeCTCF(clauseNumber) { Connection = ctxCtcf.Connection, Category = ctxCtcf.ToCategoryName, FieldName = ctxCtcf.FieldName, Qualifier = ctxCtcf.Qualifier, MatchCase = ctxCtcf.MatchCase }; if (ctcf.Qualifier == FilterQualifier.Between) { ctcf.FilterBetweenStartValue = ctxCtcf.FieldValue; ctcf.FilterBetweenEndValue = ctxCtcf.FieldValue2; } if (ctcf.Qualifier.GetAttribute <FilterValuesAttribute>()?.Number == 1) { ctcf.FieldValue = ctxCtcf.FieldValue; } filter = ctcf; break; case FilterType.ConnectionToCategoryToItem: GetCmcFilterCommandDynamicParametersCTCTI ctxCtcti = context as GetCmcFilterCommandDynamicParametersCTCTI; ICursorFilterTypeCTCTI ctcti = new CursorFilterTypeCTCTI(clauseNumber) { Connection = ctxCtcti.Connection, Category = ctxCtcti.ToCategoryName, Connection2 = ctxCtcti.Connection2, Category2 = ctxCtcti.ToCategoryName2, Item = ctxCtcti.Item }; filter = ctcti; break; default: throw new System.ArgumentException("Invalid or missing FilterType"); } filter.Except = this.Except; filter.OrFilter = this.OrFilter; WriteVerbose($"Resulting filterstring is: {filter}, conjunction is: [{(filter.OrFilter ? "OR" : "AND")}]"); WriteObject(filter, false); }