/// <summary> /// Inserts required rule config. /// </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 InsertRequiredRuleConfig(RequiredRuleConfigEditDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" INSERT INTO [dbo].[RequiredRuleConfigs] ( [ProcessId] ,[Guid] ,[StateGuid] ,[LastModifiedOn] ) VALUES ( @processId ,@guid ,@stateGuid ,GETDATE() ); 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("@processId", dto.ProcessId); cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@stateGuid", dto.StateGuid); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } dto.Id = (int)idParam.Value; } }
/// <summary> /// Updates required rule config. /// </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 UpdateRequiredRuleConfig(RequiredRuleConfigEditDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" UPDATE [dbo].[RequiredRuleConfigs] SET [ProcessId] = @processId , [Guid] = @guid , [StateGuid] = @stateGuid , [LastModifiedOn] = GETDATE() WHERE [Id] = @id"; using (var cmd = new SqlCommand(CommandText)) { cmd.Parameters.AddWithValue("@id", dto.Id); cmd.Parameters.AddWithValue("@processId", dto.ProcessId); cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@stateGuid", dto.StateGuid); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } } }
/// <summary> /// Reads required rule configurations. /// </summary> /// <param name="process">The process.</param> /// <param name="sr">The reader.</param> private static void ReadRequiredRuleConfigs(ProcessEditDto process, SafeDataReader sr) { sr.NextResult(); while (sr.Read()) { var configDto = new RequiredRuleConfigEditDto { Id = sr.GetInt32(0), ProcessId = sr.GetInt32(1), Guid = sr.GetGuid(2), StateGuid = sr.GetGuid(3) }; process.RequiredRuleConfigs.Add(configDto); } ReadRequiredRuleConfigFields(process, sr); }