Exemplo n.º 1
0
        /// <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(); }
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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());
        }
Exemplo n.º 4
0
        /// <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;
            }
        }
Exemplo n.º 5
0
        /// <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(); }
            }
        }