/// <summary> /// Inserts field visibility rule. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentException">The input DTO is null.</exception> /// <exception cref="System.Data.DBConcurrencyException">Indicates stale data.</exception> public void InsertFieldVisibilityRule(FieldVisibilityRuleEditDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" INSERT INTO [dbo].[FieldVisibilityRules] ( [RuleId] , [FieldGuid] , [LastModifiedOn] ) VALUES ( @ruleId , @fieldGuid , GETDATE() );"; using (var cmd = new SqlCommand(CommandText)) { cmd.Parameters.AddWithValue("@ruleId", dto.RuleId); cmd.Parameters.AddWithValue("@fieldGuid", dto.FieldGuid); var rowsAffetcted = Database.Execute(cmd); if (rowsAffetcted == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } } }
/// <summary> /// Reads field visibility rules. /// </summary> /// <param name="process">The process.</param> /// <param name="sr">The reader.</param> private static void ReadFieldVisibilityRules(ProcessEditDto process, SafeDataReader sr) { int? ruleId = null; ProcessActionRuleEditDto rule = null; sr.NextResult(); while (sr.Read()) { var visibilityRule = new FieldVisibilityRuleEditDto { RuleId = sr.GetInt32(0), FieldGuid = sr.GetGuid(1) }; if (visibilityRule.RuleId != ruleId) { rule = process.ActionRules.First(r => r.Id == visibilityRule.RuleId); ruleId = rule.Id; } rule.FieldVisibilityRules.Add(visibilityRule); } }