/// <summary> /// Inserts an integration service web method call result field. /// </summary> /// <param name="dto"> /// The DTO object. /// </param> public void InsertIntegrationServiceWebMethodCallResultField(IntegrationServiceWebMethodCallResultFieldDto dto) { const string CommandText = @" INSERT INTO [dbo].[IntegrationServiceWebMethodCallResultFields] ( [SettingsId] ,[ParentId] ,[LastModifiedOn] ,[Name] ,[DeclaringTypeName] ) VALUES ( @settingsId ,@parentId ,GETDATE() ,@name ,@declaringTypeName ); SET @id = SCOPE_IDENTITY();"; if (dto == null) throw new ArgumentNullException("dto"); using (var cmd = new SqlCommand(CommandText)) { var idParam = cmd.Parameters.Add("@id", SqlDbType.Int); idParam.Direction = ParameterDirection.Output; cmd.Parameters.AddWithValue("@settingsId", dto.SettingsId); cmd.Parameters.AddWithValue("@parentId", AdoHelper.NullCheck(dto.ParentId)); cmd.Parameters.AddWithValue("@name", dto.Name); cmd.Parameters.AddWithValue("@declaringTypeName", dto.DeclaringTypeName); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) throw new DBConcurrencyException(ConcurencyException); dto.Id = (int)idParam.Value; } }
/// <summary> /// Updates an integration service web method call result field. /// </summary> /// <param name="dto"> /// The DTO object. /// </param> public void UpdateIntegrationServiceWebMethodCallResultField(IntegrationServiceWebMethodCallResultFieldDto dto) { const string CommandText = @" UPDATE [dbo].[IntegrationServiceWebMethodCallResultFields] SET [SettingsId] = @settingsId ,[ParentId] = @parentId ,[LastModifiedOn] = GETDATE() ,[Name] = @name ,[DeclaringTypeName] = @declaringTypeName WHERE [Id] = @id;"; if (dto == null) throw new ArgumentNullException("dto"); using (var cmd = new SqlCommand(CommandText)) { cmd.Parameters.AddWithValue("@id", dto.Id); cmd.Parameters.AddWithValue("@settingsId", dto.SettingsId); cmd.Parameters.AddWithValue("@parentId", AdoHelper.NullCheck(dto.ParentId)); cmd.Parameters.AddWithValue("@name", dto.Name); cmd.Parameters.AddWithValue("@declaringTypeName", dto.DeclaringTypeName); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) throw new DBConcurrencyException(ConcurencyException); } }
/// <summary> /// Reads the integration service web method call result fields. /// </summary> /// <param name="settingsDto"> /// The settings DTO. /// </param> /// <param name="reader"> /// The reader. /// </param> private static void ReadIntegrationServiceWebMethodCallResultFields( IntegrationServiceWebMethodCallSettingsDto settingsDto, IDataReader reader) { reader.NextResult(); var resultFields = new List<IntegrationServiceWebMethodCallResultFieldDto>(); var resultFieldsMap = new Dictionary<int, IntegrationServiceWebMethodCallResultFieldDto>(); while (reader.Read()) { var dto = new IntegrationServiceWebMethodCallResultFieldDto { Id = reader.GetInt32(0), ParentId = reader.GetNullableInt(1), Name = reader.GetString(2), DeclaringTypeName = reader.GetString(3) }; resultFields.Add(dto); resultFieldsMap[dto.Id] = dto; } foreach (var field in resultFields) { if (!field.ParentId.HasValue) settingsDto.ResultFields.Add(field); else resultFieldsMap[field.ParentId.Value].Fields.Add(field); } }