示例#1
0
 private void ValidateFields(IEnumerable <string> fields)
 {
     if (DuplicateEntryValidator.IsDuplicatedFieldsInTheList(fields))
     {
         throw new ArgumentException("AbstractGetItemUrlBuilder.GetBaseUrlForRequest() : request.QueryParameters.Fields must contain NO duplicates");
     }
 }
示例#2
0
        private ISearchItemRequestParametersBuilder <T> AddFieldsToSort(IEnumerable <string> fields, string sortOrder)
        {
            BaseValidator.CheckNullAndThrow(fields, this.GetType().Name + ".FieldsToSort");

            if (!fields.Any())
            {
                return(this);
            }

            Func <string, bool> fieldNameValidator =
                fieldName => !string.IsNullOrWhiteSpace(fieldName);
            var validFieldsNoOrder = fields.Where(fieldNameValidator).ToList();

            //adding sort order
            var validFields = new List <string>();

            foreach (string field in validFieldsNoOrder)
            {
                validFields.Add(sortOrder + field);
            }

            IEnumerable <string> currentFields = this.sortParameters.Fields;

            if (null == currentFields)
            {
                currentFields = new string[0] {
                };
            }
            ;

            int myFieldsCount  = currentFields.Count();
            int newFieldsCount = validFields.Count;

            int appendedFieldsCount = myFieldsCount + newFieldsCount;

            string[] newFields = new string[appendedFieldsCount];

            currentFields.ToArray().CopyTo(newFields, 0);
            validFields.CopyTo(newFields, myFieldsCount);

            bool isFieldListHasDuplicates = DuplicateEntryValidator.IsDuplicatedFieldsInTheList(newFields);

            if (isFieldListHasDuplicates)
            {
                throw new InvalidOperationException(this.GetType().Name + ".Fields" + " : duplicate fields are not allowed");
            }

            this.sortParameters = new SortParameters(newFields);

            return(this);
        }
        public IBaseRequestParametersBuilder <T> AddFieldsToRead(IEnumerable <string> fields)
        {
            BaseValidator.CheckNullAndThrow(fields, this.GetType().Name + ".Fields");

            if (!fields.Any())
            {
                return(this);
            }

            Func <string, bool> fieldNameValidator =
                fieldName => !string.IsNullOrWhiteSpace(fieldName);
            var validFields = fields.Where(fieldNameValidator).ToList();

            IEnumerable <string> currentFields = this.queryParameters.Fields;

            if (null == currentFields)
            {
                currentFields = new string[0] {
                };
            }
            ;



            int myFieldsCount  = currentFields.Count();
            int newFieldsCount = validFields.Count;

            int appendedFieldsCount = myFieldsCount + newFieldsCount;

            string[] newFields = new string[appendedFieldsCount];


            currentFields.ToArray().CopyTo(newFields, 0);
            validFields.CopyTo(newFields, myFieldsCount);

            bool isFieldListHasDuplicates = DuplicateEntryValidator.IsDuplicatedFieldsInTheList(newFields);

            if (isFieldListHasDuplicates)
            {
                throw new InvalidOperationException(this.GetType().Name + ".Fields" + " : duplicate fields are not allowed");
            }

            this.queryParameters = new QueryParameters(
                this.queryParameters.Payload,
                this.queryParameters.ScopeParameters,
                newFields);

            return(this);
        }