/// <summary>
        /// Saves the user configuration. Calling this method results in a call to EWS.
        /// </summary>
        /// <param name="name">The name of the user configuration.</param>
        /// <param name="parentFolderId">The Id of the folder in which to save the user configuration.</param>
        public async System.Threading.Tasks.Task Save(string name, FolderId parentFolderId, CancellationToken token = default(CancellationToken))
        {
            EwsUtilities.ValidateParam(name, "name");
            EwsUtilities.ValidateParam(parentFolderId, "parentFolderId");

            parentFolderId.Validate(this.service.RequestedServerVersion);

            if (!this.isNew)
            {
                throw new InvalidOperationException(Strings.CannotSaveNotNewUserConfiguration);
            }

            this.parentFolderId = parentFolderId;
            this.name           = name;

            await this.service.CreateUserConfiguration(this, token);

            this.isNew = false;

            this.ResetIsDirty();
        }
        /// <summary>
        /// Saves the user configuration. Calling this method results in a call to EWS.
        /// </summary>
        /// <param name="name">The name of the user configuration.</param>
        /// <param name="parentFolderId">The Id of the folder in which to save the user configuration.</param>
        public void Save(string name, FolderId parentFolderId)
        {
            EwsUtilities.ValidateParam(name, "name");
            EwsUtilities.ValidateParam(parentFolderId, "parentFolderId");

            parentFolderId.Validate(this.service.RequestedServerVersion);

            if (!this.isNew)
            {
                throw new InvalidOperationException(Strings.CannotSaveNotNewUserConfiguration);
            }

            this.parentFolderId = parentFolderId;
            this.name           = name;

            this.service.CreateUserConfiguration(this);

            this.isNew = false;

            this.ResetIsDirty();
        }
        /// <summary>
        /// Saves the user configuration. Calling this method results in a call to EWS.
        /// </summary>
        /// <param name="name">The name of the user configuration.</param>
        /// <param name="parentFolderId">The Id of the folder in which to save the user configuration.</param>
        public void Save(string name, FolderId parentFolderId)
        {
            EwsUtilities.ValidateParam(name, "name");
            EwsUtilities.ValidateParam(parentFolderId, "parentFolderId");

            parentFolderId.Validate(this.service.RequestedServerVersion);

            if (!this.isNew)
            {
                throw new InvalidOperationException(Strings.CannotSaveNotNewUserConfiguration);
            }

            this.parentFolderId = parentFolderId;
            this.name = name;

            this.service.CreateUserConfiguration(this);

            this.isNew = false;

            this.ResetIsDirty();
        }