internal ValidationResults Validate(SharingMessageKind sharingMessageKind) { if (this.Providers == null || this.Providers.Length == 0) { return(new ValidationResults(ValidationResult.Failure, "There should be at least one provider")); } int num = 0; int num2 = 0; foreach (SharingMessageProvider sharingMessageProvider in this.Providers) { ValidationResults validationResults = sharingMessageProvider.Validate(sharingMessageKind); switch (validationResults.Result) { case ValidationResult.Success: if (sharingMessageProvider.IsExchangeInternalProvider) { num++; if (num > 1) { return(new ValidationResults(ValidationResult.Failure, "There should be at most one Exchange internal provider")); } } else if (sharingMessageProvider.IsExchangeExternalProvider) { num2++; if (num2 > 1) { return(new ValidationResults(ValidationResult.Failure, "There should be at most one Exchange internal provider")); } } break; case ValidationResult.Failure: return(validationResults); } } return(ValidationResults.Success); }
internal ValidationResults Validate(SharingMessageKind sharingMessageKind) { string type; if ((type = this.Type) != null) { if (!(type == "ms-exchange-internal") && !(type == "ms-exchange-external")) { if (type == "ms-exchange-publish") { if (sharingMessageKind == SharingMessageKind.Invitation) { return(this.ValidateAsPublishing()); } return(new ValidationResults(ValidationResult.Failure, "Unexpected sharing message kind: " + sharingMessageKind.ToString())); } } else { switch (sharingMessageKind) { case SharingMessageKind.Invitation: case SharingMessageKind.AcceptOfRequest: return(this.ValidateAsInvitationOrAcceptOfRequest()); case SharingMessageKind.Request: case SharingMessageKind.DenyOfRequest: return(this.ValidateAsRequestOrDenyOfRequest()); default: return(new ValidationResults(ValidationResult.Unknown, "unknown sharing message kind: " + sharingMessageKind.ToString())); } } } return(new ValidationResults(ValidationResult.Unknown, "unknown provider type: " + this.Type)); }