/// <summary> /// Inserts the integration service web method call parameter. /// </summary> /// <param name="dto">The dto.</param> /// <exception cref="System.ArgumentNullException">dto</exception> /// <exception cref="System.Data.DBConcurrencyException"></exception> public void InsertIntegrationServiceWebMethodCallParameter(IntegrationServiceWebMethodCallParameterDto dto) { const string CommandText = @" INSERT INTO [dbo].[IntegrationServiceWebMethodCallParameters] ( [SettingsId] ,[ParentId] ,[LastModifiedOn] ,[Guid] ,[Name] ,[TypeCode] ,[TypeName] ,[TypeDisplayName] ,[IsNull] ,[IsArray] ,[ArrayItemCount] ,[IsEnum] ,[IsSoapHeader] ) VALUES ( @settingsId ,@parentId ,GETDATE() ,@guid ,@name ,@typeCode ,@typeName ,@typeDisplayName ,@isNull ,@isArray ,@arrayItemCount ,@isEnum ,@isSoapHeader ); 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("@guid", dto.Guid); cmd.Parameters.AddWithValue("@name", dto.Name); cmd.Parameters.AddWithValue("@typeCode", dto.TypeCode.ToString()); cmd.Parameters.AddWithValue("@typeName", dto.TypeName); cmd.Parameters.AddWithValue("@typeDisplayName", dto.TypeDisplayName); cmd.Parameters.AddWithValue("@isNull", dto.IsNull); cmd.Parameters.AddWithValue("@isArray", dto.IsArray); cmd.Parameters.AddWithValue("@arrayItemCount", AdoHelper.NullCheck(dto.ArrayItemCount)); cmd.Parameters.AddWithValue("@isEnum", dto.IsEnum); cmd.Parameters.AddWithValue("@isSoapHeader", dto.IsSoapHeader); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) throw new DBConcurrencyException(ConcurencyException); dto.Id = (int)idParam.Value; } }
/// <summary> /// Updates the integration service web method call parameter. /// </summary> /// <param name="dto">The dto.</param> /// <exception cref="System.ArgumentNullException">dto</exception> /// <exception cref="System.Data.DBConcurrencyException"></exception> public void UpdateIntegrationServiceWebMethodCallParameter(IntegrationServiceWebMethodCallParameterDto dto) { const string CommandText = @" UPDATE [dbo].[IntegrationServiceWebMethodCallParameters] SET [SettingsId] = @settingsId ,[ParentId] = @parentId ,[LastModifiedOn] = GETDATE() ,[Guid] = @guid ,[Name] = @name ,[TypeCode] = @typeCode ,[TypeName] = @typeName ,[TypeDisplayName] = @typeDisplayName ,[IsNull] = @isNull ,[IsArray] = @isArray ,[ArrayItemCount] = @arrayItemCount ,[IsEnum] = @isEnum ,[IsSoapHeader] = @isSoapHeader 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("@guid", dto.Guid); cmd.Parameters.AddWithValue("@name", dto.Name); cmd.Parameters.AddWithValue("@typeCode", dto.TypeCode.ToString()); cmd.Parameters.AddWithValue("@typeName", dto.TypeName); cmd.Parameters.AddWithValue("@typeDisplayName", dto.TypeDisplayName); cmd.Parameters.AddWithValue("@isNull", dto.IsNull); cmd.Parameters.AddWithValue("@isArray", dto.IsArray); cmd.Parameters.AddWithValue("@arrayItemCount", AdoHelper.NullCheck(dto.ArrayItemCount)); cmd.Parameters.AddWithValue("@isEnum", dto.IsEnum); cmd.Parameters.AddWithValue("@isSoapHeader", dto.IsSoapHeader); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) throw new DBConcurrencyException(ConcurencyException); } }
/// <summary> /// Reads the integration service web method call parameters. /// </summary> /// <param name="settingsDto">The settings dto.</param> /// <param name="reader">The reader.</param> private static void ReadIntegrationServiceWebMethodCallParameters(IntegrationServiceWebMethodCallSettingsDto settingsDto, IDataReader reader) { reader.NextResult(); var parameters = new List<IntegrationServiceWebMethodCallParameterDto>(); var parametersMap = new Dictionary<int, IntegrationServiceWebMethodCallParameterDto>(); while (reader.Read()) { var dto = new IntegrationServiceWebMethodCallParameterDto { Id = reader.GetInt32(0), ParentId = reader.GetNullableInt(1), Guid = reader.GetGuid(2), Name = reader.GetString(3), TypeCode = (WebServiceTypeCode) Enum.Parse(typeof(WebServiceTypeCode), reader.GetString(4), true), TypeName = reader.GetString(5), TypeDisplayName = reader.GetString(6), IsNull = reader.GetBoolean(7), IsArray = reader.GetBoolean(8), ArrayItemCount = reader.GetNullableInt(9), IsEnum = reader.GetBoolean(10), IsSoapHeader = reader.GetBoolean(11) }; parameters.Add(dto); parametersMap[dto.Id] = dto; } foreach (var parameter in parameters) { if (!parameter.ParentId.HasValue) settingsDto.MethodParameters.Add(parameter); else parametersMap[parameter.ParentId.Value].Subfields.Add(parameter); } }