Validate method

  1. @override
void Validate()
override
Validate request.

Implementation

@override
void Validate() {
  super.Validate();

  this.View!.InternalValidate(this);

  // query String parameter is only valid for Exchange2010 or higher
  //
  if (!StringUtils.IsNullOrEmpty(this.queryString) &&
      this.Service.RequestedServerVersion.index <
          ExchangeVersion.Exchange2010.index) {
    throw new ServiceVersionException("""string.Format(
                      Strings.ParameterIncompatibleWithRequestVersion,
                      "queryString",
                      ExchangeVersion.Exchange2010)""");
  }

  // ReturnHighlightTerms parameter is only valid for Exchange2013 or higher
  //
  if (this.ReturnHighlightTerms &&
      this.Service.RequestedServerVersion.index <
          ExchangeVersion.Exchange2013.index) {
    throw new ServiceVersionException("""string.Format(
                      Strings.ParameterIncompatibleWithRequestVersion,
                      "returnHighlightTerms",
                      ExchangeVersion.Exchange2013)""");
  }

  // SeekToConditionItemView is only valid for Exchange2013 or higher
  //
  if ((this.View is SeekToConditionItemView) &&
      this.Service.RequestedServerVersion.index <
          ExchangeVersion.Exchange2013.index) {
    throw new ServiceVersionException("""string.Format(
                      Strings.ParameterIncompatibleWithRequestVersion,
                      "SeekToConditionItemView",
                      ExchangeVersion.Exchange2013)""");
  }

  if (!StringUtils.IsNullOrEmpty(this.queryString) &&
      this.searchFilter != null) {
    throw new ServiceLocalException(
        "Strings.BothSearchFilterAndQueryStringCannotBeSpecified");
  }
}