/// <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); } } } }
/// <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(); } } }