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