Esempio n. 1
0
        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));
        }