public override SqlTransaction Save(SqlConnection connection, SqlTransaction transaction) { transaction = base.Save(connection, transaction); if (this.IsObjectDirty) { transaction = this.EnsureDatabasePrepared(connection, transaction); using (SqlDataReaderWrapper dataReaderWrapper = new SqlDataReaderWrapper(connection, false)) { if (this.IsObjectCreated) { dataReaderWrapper.ProcedureName = "AdminUser_Create"; this.CreatedDateTimeUTC = DateTime.UtcNow; this.UpdatedDateTimeUTC = this.CreatedDateTimeUTC; } else { dataReaderWrapper.ProcedureName = "AdminUser_Save"; } dataReaderWrapper.AddGuid("AdminUserId", this.Id); dataReaderWrapper.AddNVarChar("FirstName", this.FirstName); dataReaderWrapper.AddNVarChar("LastName", this.LastName); dataReaderWrapper.AddNVarChar("EmailAddress", this.EmailAddress); dataReaderWrapper.AddNVarChar("PhoneNumber", InnovaFormatting.CleanPhoneNumber(this.PhoneNumber)); dataReaderWrapper.AddNVarChar("Password", this.Password); dataReaderWrapper.AddNVarChar("Address1", this.Address1); dataReaderWrapper.AddNVarChar("Address2", this.Address2); dataReaderWrapper.AddNVarChar("City", this.City); dataReaderWrapper.AddNVarChar("State", this.State); dataReaderWrapper.AddNVarChar("PostalCode", this.PostalCode); dataReaderWrapper.AddNVarChar("ShippingAddress1", this.ShippingAddress1); dataReaderWrapper.AddNVarChar("ShippingAddress2", this.ShippingAddress2); dataReaderWrapper.AddNVarChar("ShippingCity", this.ShippingCity); dataReaderWrapper.AddNVarChar("ShippingState", this.ShippingState); dataReaderWrapper.AddNVarChar("ShippingPostalCode", this.ShippingPostalCode); dataReaderWrapper.AddNVarChar("AreasOfExpertise", this.AreasOfExpertise); dataReaderWrapper.AddInt32("AdminUserType", (int)this.AdminUserType); dataReaderWrapper.AddBoolean("IsSystemAdministrator", this.IsSystemAdministrator); dataReaderWrapper.AddBoolean("IsReceivesPastDueNoFixNotifications", this.IsReceivesPastDueNoFixNotifications); dataReaderWrapper.AddInt32("Market", (int)this.Market); dataReaderWrapper.AddNVarChar("Permissions", this.Permissions); dataReaderWrapper.AddDecimal("ValidationPayRateDollarsPerHour", this.ValidationPayRateDollarsPerHour); dataReaderWrapper.AddBoolean("IsActive", this.IsActive); dataReaderWrapper.AddBoolean("IsDeleted", this.IsDeleted); dataReaderWrapper.AddDateTime("UpdatedDateTimeUTC", this.UpdatedDateTimeUTC); dataReaderWrapper.AddDateTime("CreatedDateTimeUTC", this.CreatedDateTimeUTC); dataReaderWrapper.AddDateTime("LastLoginDateTimeUTC", this.LastLoginDateTimeUTC); dataReaderWrapper.AddBusinessObject("PropertyDefinitionDataSetId", (BusinessObjectBase)this.PropertyDefinitionDataSet); dataReaderWrapper.AddBoolean("EnablePropertyDefinitionEditingOnForms", this.EnablePropertyDefinitionEditingOnForms); dataReaderWrapper.Execute(transaction); } this.IsObjectDirty = false; } transaction = this.SaveCollections(connection, transaction); return(transaction); }