예제 #1
0
        /// <summary>
        /// Updates approval level definition.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <exception cref="System.ArgumentNullException"></exception>
        /// <exception cref="System.Data.DBConcurrencyException">Indicates stale data</exception>
        /// <exception cref="System.ArgumentException">The input DTO is null.</exception>
        public void UpdateApprovalLevelDefinition(ApprovalLevelDefinitionDto dto)
        {
            if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
UPDATE [dbo].[ApprovalLevelDefinitions]
SET
     [Guid] = @guid
    ,[StepId] = @stepId
    ,[Level] = @level
    ,[ApprovalAlgorithm] = @approvalAlgorithm
    ,[ApprovalPercent] = @approvalPercent
    ,[MembersRoleId] = @membersRoleId
    ,[MembersFieldDefinitionName] = @membersFieldDefinitionName
    ,[OverrideRoleId] = @overrideRoleId
    ,[OverrideFieldDefinitionName] = @overrideFieldDefinitionName
    ,[BusinessUnitFieldDefinitionName] = @businessUnitFieldDefinitionName
    ,[MembersUseProcess] = @MembersUseProcess
    ,[MembersProcessName] = @MembersProcessName
    ,[MembersProcessFilterGuid] = @MembersProcessFilterGuid
    ,[MembersProcessFilterDefinition] = @MembersProcessFilterDefinition
    ,[OverrideUseProcess] = @OverrideUseProcess
    ,[OverrideProcessName] = @OverrideProcessName
    ,[OverrideProcessFilterGuid] = @OverrideProcessFilterGuid
    ,[OverrideProcessFilterDefinition] = @OverrideProcessFilterDefinition
    ,[LastModifiedOn] = getdate()
WHERE [Id] = @id;
";

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;

                using (var cmd = new SqlCommand(Sql, cn))
                {
                    cmd.Parameters.AddWithValue("@guid", dto.Guid);
                    cmd.Parameters.AddWithValue("@stepId", dto.StepId);
                    cmd.Parameters.AddWithValue("@level", dto.Level);
                    cmd.Parameters.AddWithValue("@approvalAlgorithm", dto.ApprovalAlgorithm);
                    cmd.Parameters.AddWithValue("@approvalPercent", dto.ApprovalPercent);
                    cmd.Parameters.AddWithValue("@membersRoleId", dto.MembersRoleId);
                    cmd.Parameters.AddWithValue("@membersFieldDefinitionName", dto.ApprovalMembersPropertyPath);
                    cmd.Parameters.AddWithValue("@overrideRoleId", dto.OverrideRoleId);
                    cmd.Parameters.AddWithValue("@overrideFieldDefinitionName", dto.OverrideMembersPropertyPath);
                    cmd.Parameters.AddWithValue("@businessUnitFieldDefinitionName", dto.BusinessUnitFieldDefinitionName);
                    cmd.Parameters.AddWithValue("@MembersUseProcess", dto.MembersUseProcess);
                    cmd.Parameters.AddWithValue("@MembersProcessName", dto.MembersProcessName ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@MembersProcessFilterGuid", dto.MembersProcessFilterGuid ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@MembersProcessFilterDefinition", dto.MembersProcessFilterDefinition ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@OverrideUseProcess", dto.OverrideUseProcess);
                    cmd.Parameters.AddWithValue("@OverrideProcessName", dto.OverrideProcessName ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@OverrideProcessFilterGuid", dto.OverrideProcessFilterGuid ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@OverrideProcessFilterDefinition", dto.OverrideProcessFilterDefinition ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@id", dto.Id);

                    var rowsAffected = cmd.ExecuteNonQuery();

                    if (rowsAffected == 0)
                    {
                        throw new DBConcurrencyException(Resources.StaleDataException);
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Inserts approval level definition.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <exception cref="System.ArgumentException">The input DTO is null.</exception>
        public void InsertApprovalLevelDefinition(ApprovalLevelDefinitionDto dto)
        {
            if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
INSERT INTO [dbo].[ApprovalLevelDefinitions]
(
     [Guid]
    ,[StepId]
    ,[Level]
    ,[ApprovalAlgorithm]
    ,[ApprovalPercent]
    ,[MembersRoleId]
    ,[MembersFieldDefinitionName]
    ,[OverrideRoleId]
    ,[OverrideFieldDefinitionName]
    ,[BusinessUnitFieldDefinitionName]
    ,[MembersUseProcess]
    ,[MembersProcessName]
    ,[MembersProcessFilterGuid]
    ,[MembersProcessFilterDefinition]
    ,[OverrideUseProcess]
    ,[OverrideProcessName]
    ,[OverrideProcessFilterGuid]
    ,[OverrideProcessFilterDefinition]
    ,[LastModifiedOn]
)
VALUES
(
     @guid
    ,@stepId
    ,@level
    ,@approvalAlgorithm
    ,@approvalPercent
    ,@membersRoleId
    ,@membersFieldDefinitionName
    ,@overrideRoleId
    ,@overrideFieldDefinitionName
    ,@businessUnitFieldDefinitionName
    ,@MembersUseProcess
    ,@MembersProcessName
    ,@MembersProcessFilterGuid
    ,@MembersProcessFilterDefinition
    ,@OverrideUseProcess
    ,@OverrideProcessName
    ,@OverrideProcessFilterGuid
    ,@OverrideProcessFilterDefinition
    ,getdate()
);

SELECT [Id]
FROM   [dbo].[ApprovalLevelDefinitions]
WHERE  [Id] = SCOPE_IDENTITY();
";

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;

                using (var cmd = new SqlCommand(Sql, cn))
                {
                    cmd.Parameters.AddWithValue("@guid", dto.Guid);
                    cmd.Parameters.AddWithValue("@stepId", dto.StepId);
                    cmd.Parameters.AddWithValue("@level", dto.Level);
                    cmd.Parameters.AddWithValue("@approvalAlgorithm", dto.ApprovalAlgorithm);
                    cmd.Parameters.AddWithValue("@approvalPercent", dto.ApprovalPercent);
                    cmd.Parameters.AddWithValue("@membersRoleId", dto.MembersRoleId);
                    cmd.Parameters.AddWithValue("@membersFieldDefinitionName", dto.ApprovalMembersPropertyPath);
                    cmd.Parameters.AddWithValue("@overrideRoleId", dto.OverrideRoleId);
                    cmd.Parameters.AddWithValue("@overrideFieldDefinitionName", dto.OverrideMembersPropertyPath);
                    cmd.Parameters.AddWithValue("@businessUnitFieldDefinitionName", dto.BusinessUnitFieldDefinitionName);
                    cmd.Parameters.AddWithValue("@MembersUseProcess", dto.MembersUseProcess);
                    cmd.Parameters.AddWithValue("@MembersProcessName", dto.MembersProcessName ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@MembersProcessFilterGuid", dto.MembersProcessFilterGuid ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@MembersProcessFilterDefinition", dto.MembersProcessFilterDefinition ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@OverrideUseProcess", dto.OverrideUseProcess);
                    cmd.Parameters.AddWithValue("@OverrideProcessName", dto.OverrideProcessName ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@OverrideProcessFilterGuid", dto.OverrideProcessFilterGuid ?? (object)DBNull.Value);
                    cmd.Parameters.AddWithValue("@OverrideProcessFilterDefinition", dto.OverrideProcessFilterDefinition ?? (object)DBNull.Value);

                    dto.Id = (int)cmd.ExecuteScalar();
                }
            }
        }