Exemplo n.º 1
0
        /// <summary>
        /// Inserts a data trigger stored procedure parameter.
        /// </summary>
        /// <param name="dto">The data transfer object.</param>
        /// <exception cref="System.ArgumentNullException">dto</exception>
        /// <exception cref="System.Data.DBConcurrencyException"></exception>
        /// <exception cref="ArgumentNullException">The <see cref="dto" /> parameter is null.</exception>
        /// <exception cref="DBConcurrencyException">Indicates stale data.</exception>
        public void InsertDataTriggerStoredProcedureParameter(DataTriggerStoredProcedureParameterDto dto)
        {
            if (dto == null)
                throw new ArgumentNullException("dto");

            const string CommandText = @"
INSERT INTO [dbo].[DataTriggerStoredProcedureParameters]
(
     [Guid]
    ,[TriggerId]
    ,[LastModifiedOn]
    ,[Name]
    ,[DataType]
    ,[Expression]
)
VALUES
(
     @guid
    ,@triggerId
    ,GETDATE()
    ,@name
    ,@dataType
    ,@expression
)
SET @id = SCOPE_IDENTITY();";

            using (var cmd = new SqlCommand(CommandText))
            {
                var idParam = cmd.Parameters.Add("@id", SqlDbType.Int);
                idParam.Direction = ParameterDirection.Output;

                cmd.Parameters.AddWithValue("@guid", dto.Guid);
                cmd.Parameters.AddWithValue("@triggerId", dto.TriggerId);
                cmd.Parameters.AddWithValue("@name", dto.Name);
                cmd.Parameters.AddWithValue("@dataType", dto.DataType.ToString());
                cmd.Parameters.AddWithValue("@expression", dto.Expression);

                var rowsAffected = Database.Execute(cmd);
                if (rowsAffected == 0)
                {
                    throw new DBConcurrencyException(Resources.StaleDataException);
                }

                dto.Id = (int)idParam.Value;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Updates a data trigger stored procedure parameter.
        /// </summary>
        /// <param name="dto">The data transfer object.</param>
        /// <exception cref="System.ArgumentNullException">dto</exception>
        /// <exception cref="System.Data.DBConcurrencyException"></exception>
        /// <exception cref="ArgumentNullException">The <see cref="dto" /> parameter is null.</exception>
        /// <exception cref="DBConcurrencyException">Indicates stale data.</exception>
        public void UpdateDataTriggerStoredProcedureParameter(DataTriggerStoredProcedureParameterDto dto)
        {
            if (dto == null)
                throw new ArgumentNullException("dto");

            const string CommandText = @"
UPDATE [dbo].[DataTriggerStoredProcedureParameters]
SET
     [Guid] = @guid
    ,[TriggerId] = @triggerId
    ,[LastModifiedOn] = GETDATE()
    ,[Name] = @name
    ,[DataType] = @dataType
    ,[Expression] = @expression
WHERE [Id] = @id;";

            using (var cmd = new SqlCommand(CommandText))
            {
                cmd.Parameters.AddWithValue("@id", dto.Id);
                cmd.Parameters.AddWithValue("@guid", dto.Guid);
                cmd.Parameters.AddWithValue("@triggerId", dto.TriggerId);
                cmd.Parameters.AddWithValue("@name", dto.Name);
                cmd.Parameters.AddWithValue("@dataType", dto.DataType.ToString());
                cmd.Parameters.AddWithValue("@expression", dto.Expression);

                var rowsAffected = Database.Execute(cmd);

                if (rowsAffected == 0)
                {
                    throw new DBConcurrencyException(Resources.StaleDataException);
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Reads the data trigger stored procedure parameters.
        /// </summary>
        /// <param name="process">The process.</param>
        /// <param name="sr">The data reader.</param>
        private static void ReadDataTriggerStoredProcedureParameters(ProcessEditDto process, SafeDataReader sr)
        {
            sr.NextResult();

            int? triggerId = null;
            ProcessDataTriggerEditDto trigger = null;

            while (sr.Read())
            {
                var parameterDto = new DataTriggerStoredProcedureParameterDto
                                       {
                                           Id = sr.GetInt32(0),
                                           Guid = sr.GetGuid(1),
                                           TriggerId = sr.GetInt32(2),
                                           Name = sr.GetString(3),
                                           DataType =
                                               sr.GetEnum(4, DbDataType.String),
                                           Expression = sr.GetString(5)
                                       };

                if (parameterDto.TriggerId != triggerId)
                {
                    trigger = process.TriggerList.First(t => t.Id == parameterDto.TriggerId);
                    triggerId = parameterDto.TriggerId;
                }

                trigger.StoredProcedureParameters.Add(parameterDto);
            }
        }