BetterMembership.Web.BetterProfileProvider.SetPropertyValues C# (CSharp) Метод

SetPropertyValues() публичный Метод

public SetPropertyValues ( SettingsContext context, SettingsPropertyValueCollection collection ) : void
context System.Configuration.SettingsContext
collection System.Configuration.SettingsPropertyValueCollection
Результат void
        public override void SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection collection)
        {
            Condition.Requires(context, "context").IsNotNull();
            Condition.Requires(collection, "collection").IsNotNull();

            var userName = context[UserNameKey] as string;
            if (string.IsNullOrWhiteSpace(userName))
            {
                return;
            }

            this.EnsureSupportedColumns();

            var ignoreValues =
                collection.Cast<SettingsPropertyValue>()
                          .Where(value => !this.databaseColumns.Contains(value.Name))
                          .Where(
                              value =>
                              string.Compare(
                                  value.Name, 
                                  this.membershipProvider.UserEmailColumn, 
                                  StringComparison.OrdinalIgnoreCase) != 0
                              && string.Compare(
                                  value.Name, this.membershipProvider.UserIdColumn, StringComparison.OrdinalIgnoreCase)
                              != 0)
                          .ToList();

            if (ignoreValues.Count > 0)
            {
                throw new NotSupportedException("invalid profile property, no matching database column defined.");
            }

            if (this.databaseColumns.Count == 0)
            {
                return;
            }

            var updateValues =
                collection.Cast<SettingsPropertyValue>()
                          .Where(value => this.databaseColumns.Contains(value.Name))
                          .ToList();

            if (updateValues.Count == 0)
            {
                return;
            }

            using (var db = this.ConnectToDatabase())
            {
                object[] values;
                db.Execute(this.sqlQueryBuilder.UpdateUserProfile(updateValues, userName, out values), values);
            }
        }