/// <summary>Updates the specified existing Administrator instance in the database.</summary> void Update(Domain.Administrator item) { Action saveAll = () => { if (ExecuteScalar(UPDATE_USERS_COMMAND, CommandType.Text, CreateUserParameters(item)).ToStringOrEmpty().IsEmpty()) { Cache.Current.Remove(item); throw new ConcurrencyException($"Failed to update the 'Users' table. There is no row with the ID of {item.ID}."); } if (ExecuteScalar(UPDATE_ADMINISTRATORS_COMMAND, CommandType.Text, CreateAdministratorParameters(item)).ToStringOrEmpty().IsEmpty()) { Cache.Current.Remove(item); throw new ConcurrencyException($"Failed to update the 'Administrators' table. There is no row with the ID of {item.ID}."); } }; if (Database.AnyOpenTransaction()) { saveAll(); } else { using (var scope = Database.CreateTransactionScope()) { saveAll(); scope.Complete(); } } }
/// <summary>Extracts the Administrator instance from the current record of the specified data reader.</summary> internal override IEntity Parse(IDataReader reader, UserFields fields) { var result = new Domain.Administrator(); FillData(reader, result, fields); EntityManager.SetSaved(result, reader.GetGuid(0)); return(result); }
/// <summary>Creates parameters for Inserting or Updating Administrator records</summary> IDataParameter[] CreateAdministratorParameters(Domain.Administrator item) { var result = new List <IDataParameter>(); result.Add(CreateParameter("OriginalId", item.OriginalId)); result.Add(CreateParameter("Id", item.GetId())); result.Add(CreateParameter("ImpersonationToken", item.ImpersonationToken)); return(result.ToArray()); }
/// <summary>Loads the data from the specified data reader on the specified Administrator instance.</summary> internal static void FillData(IDataReader reader, Domain.Administrator entity, UserFields fields) { var values = new object[reader.FieldCount]; reader.GetValues(values); UserDataProvider.FillData(reader, entity, fields); if (values[fields.Administrators_ImpersonationToken] != DBNull.Value) { entity.ImpersonationToken = values[fields.Administrators_ImpersonationToken] as string; } }
/// <summary>Inserts the specified new Administrator instance into the database.</summary> void Insert(Domain.Administrator item) { Action saveAll = () => { ExecuteScalar(INSERT_USERS_COMMAND, CommandType.Text, CreateUserParameters(item)); ExecuteScalar(INSERT_ADMINISTRATORS_COMMAND, CommandType.Text, CreateAdministratorParameters(item)); }; if (Database.AnyOpenTransaction()) { saveAll(); } else { using (var scope = Database.CreateTransactionScope()) { saveAll(); scope.Complete(); } } }