public void Test___Method_Stop___Status_Created() { var value = new AnyVariable <string>(); var to = new AnyVariable <string>(); var testee = new ForEachActivity() { Enumerable = new AnyVariable <IEnumerable>() { Value = new List <object>() { "foo", "bar", "baz" } }, Value = value, Activity = new AssignActivity() { To = to, Value = value } }; testee.Stop(); Assert.AreEqual(ActivityStatus.Stopped, testee.Status); Assert.IsNull(to.GetValueAsObject()); }
public async Task Test___Method_Start___Status_Created___Empty() { var value = new AnyVariable <object>(); var to = new AnyVariable <int>() { Value = 0 }; var testee = new ForEachActivity() { Enumerable = new AnyVariable <IEnumerable>() { Value = new List <object>() }, Value = value, Activity = new AssignActivity() { To = to, Value = value } }; await testee.Start(); Assert.AreEqual(ActivityStatus.Completed, testee.Status); Assert.AreEqual(0, to.GetValueAsObject()); }
public async Task Test___Method_Start___Status_Created___not_Empty() { var value = new AnyVariable <string>(); var to = new AnyVariable <string>(); var testee = new ForEachActivity() { Enumerable = new AnyVariable <IEnumerable>() { Value = new List <string>() { "foo", "bar", "baz" } }, Value = value, Activity = new AssignActivity() { To = to, Value = value } }; await testee.Start(); Assert.AreEqual(ActivityStatus.Completed, testee.Status); Assert.AreEqual("baz", to.GetValueAsObject()); }
public async Task Test___Method_Stop___Status_Executing() { var value = new AnyVariable <int>(); var testee = new ForEachActivity() { Enumerable = new AnyVariable <IEnumerable>() { Value = new List <object>() { 2000, 2000, 2000 } }, Value = value, Activity = new DelayActivity() { Duration = value } }; var task = testee.Start(); Assert.AreEqual(ActivityStatus.Executing, testee.Status); Thread.Sleep(3000); testee.Stop(); await task; Assert.AreEqual(ActivityStatus.Stopped, testee.Status); }
public override Activity ToSdkObject() { var activity = new ForEachActivity(this.Name, this.Items, this.Activities?.Select(element => element?.ToSdkObject())); activity.IsSequential = this.IsSequential; activity.BatchCount = this.BatchCount; SetProperties(activity); return(activity); }
private PipelineResource GetPipelineResource(string description) { PipelineResource resource = new PipelineResource { Description = description, Parameters = new Dictionary <string, ParameterSpecification> { { "OutputBlobNameList", new ParameterSpecification { Type = ParameterType.Array } } }, Variables = new Dictionary <string, VariableSpecification> { { "TestVariableArray", new VariableSpecification { Type = VariableType.Array } } }, Activities = new List <Activity>() }; CopyActivity copyActivity = new CopyActivity { Name = "ExampleCopyActivity", DataIntegrationUnits = 32, Inputs = new List <DatasetReference> { new DatasetReference { ReferenceName = datasetName, Parameters = new Dictionary <string, object>() { { "MyFolderPath", secrets.BlobContainerName }, { "MyFileName", "entitylogs.csv" } } } }, Outputs = new List <DatasetReference> { new DatasetReference { ReferenceName = datasetName, Parameters = new Dictionary <string, object>() { { "MyFolderPath", secrets.BlobContainerName }, { "MyFileName", new Expression("@item()") } } } }, Source = new BlobSource { }, Sink = new BlobSink { } }; ForEachActivity forEachActivity = new ForEachActivity { Name = "ExampleForeachActivity", IsSequential = true, Items = new Expression("@pipeline().parameters.OutputBlobNameList"), Activities = new List <Activity>() { copyActivity } }; resource.Activities.Add(forEachActivity); return(resource); }
private static void crearPipesDinamismoETL(DataFactoryManagementClient client) { // Generador de Scripts para claim center string[] tablas = new[] { "cc_activity", "cc_check", "cc_checkpayee", "cc_claim", "cc_contact", "cc_coverage", "cc_exchangerate", "cc_exposure", "cc_exposurerpt", "cc_group", "cc_history", "cc_litstatustypeline", "cc_matter", "cc_policy", "cc_riskunit", "cc_transaction", "cc_transactionlineitem", "cc_transactionset", "cc_vehicle", "cctl_approvalstatus", "cctl_costtype", "cctl_coveragesubtype", "cctl_exposurestate", "cctl_exposuretype", "cctl_ext_casequestioned", "cctl_ext_courtvenue", "cctl_ext_damagetype", "cctl_ext_exposurestage", "cctl_historytype", "cctl_losscause", "cctl_matterstatus", "cctl_mattertype", "cctl_transactionstatus" }; PipelineResource pipe = new PipelineResource(name: "PipeForEachClaim"); List <Activity> la = new List <Activity>(); //Foreach activity ForEachActivity fea = new ForEachActivity(); fea.IsSequential = false; fea.Name = "ForEachActiv"; Expression ex = new Expression("@pipeline().parameters.TablasACopiar"); fea.Items = ex; //Copy activity List <Activity> la1 = new List <Activity>(); CopyActivity ca = new CopyActivity(); ca.EnableStaging = false; ca.CloudDataMovementUnits = 5; ca.Name = "CopyTabla"; List <DatasetReference> ldr = new List <DatasetReference>(); ldr.Add(new DatasetReference("Dataset_Dinamismo_Claim")); ca.Inputs = ldr; List <DatasetReference> ldo = new List <DatasetReference>(); ldo.Add(new DatasetReference("Dataset_WHDinamismo_Claim")); ca.Outputs = ldo; //string consulta = "declare @Tabla varchar(1000);select @Tabla = '@{item()}';declare @vsSQL varchar(8000);declare @vsTableName varchar(50);select @vsTableName = @Tabla;select @vsSQL = '; IF EXISTS (SELECT * FROM '+ @Tabla + ') '+' DROP TABLE '+ @Tabla + ';'+ ' CREATE TABLE ' + @vsTableName + char(10) + '(' + char(10);select @vsSQL = @vsSQL + ' ' + sc.Name + ' ' +st.Name +case when st.Name in ('varchar','varchar','char','nchar') then '(' + cast(sc.Length as varchar) + ') ' else ' ' end +case when sc.IsNullable = 1 then 'NULL' else 'NOT NULL' end + ',' + char(10) from sysobjects so join syscolumns sc on sc.id = so.id join systypes st on st.xusertype = sc.xusertype where so.name = @vsTableName order by sc.ColID; select substring(@vsSQL,1,len(@vsSQL) - 2) + char(10) + ') ' as QueryCreacion"; //string consulta = "declare @Tabla as varchar(1000);select @Tabla = '@{item()}';declare @vsSQL varchar(8000);declare @vsTableName varchar(50);select @vsTableName = @Tabla;select @vsSQL = '; IF EXISTS (SELECT * FROM '+ @Tabla + ') '+' DROP TABLE '+ @Tabla + ';'+ ' CREATE TABLE ' + @vsTableName + char(10) + '(' + char(10);select @vsSQL = @vsSQL + ' ' + column_name + ' ' +data_type +case when data_type in ('varchar','varchar','char','nchar') then '(' + cast(character_maximum_length as varchar) + ') ' else ' ' end +case when is_nullable = 'YES' then 'NULL' else 'NOT NULL' end + ',' + char(10) from information_schema.columns where table_name = @vsTableName order by ordinal_position; if len(@vsSQL) < 4000 select substring(@vsSQL,1,len(@vsSQL) - 2) + char(10) + ') ' as QueryCreacion1, null as QueryCreacion2;else select substring(@vsSQL,1,3999) as QueryCreacion1, SUBSTRING(@vsSQL, 4000, len(@vsSQL) - 2) as QueryCreacion2;"; string consulta = "declare @Tabla as varchar(1000);select @Tabla = '@{item()}';declare @Schema as varchar(1000);select @Schema = 'landing';declare @vsSQL nvarchar(MAX);declare @vsTableName varchar(50);select @vsTableName = @Tabla;select @vsSQL = '; IF EXISTS (SELECT * FROM information_schema.tables where table_name = '''+ @Tabla + ''' and table_schema = '''+ @Schema +''') '+' DROP TABLE '+ @Tabla + ';'+ ' CREATE TABLE ' + @vsTableName + char(10) + '(' + char(10);select @vsSQL = @vsSQL + ' ' + column_name + ' ' +data_type +case when data_type in ('varchar','varchar','char','nchar') then '(' + cast(character_maximum_length as varchar) + ') ' else ' ' end +case when is_nullable = 'YES' then 'NULL' else 'NOT NULL' end + ',' + char(10) from information_schema.columns where table_name = @vsTableName order by ordinal_position; set @vsSQL = LEFT(@vsSQL, len(@vsSQL) - 2);if len(@vsSQL) < 3999 select replace(replace(replace(substring(@vsSQL,1,len(@vsSQL)) + char(10) + ') ','-1', '8000'), 'geography', 'varchar(8000)'), 'nvarchar', 'varchar') as QueryCreacion1, null as QueryCreacion2;else select replace(replace(replace(LEFT(@vsSQL,3800),'-1', '8000'), 'geography', 'varchar(8000)'), 'nvarchar', 'varchar') as QueryCreacion1, replace(replace(replace(RIGHT(@vsSQL, Len(@vsSQL) - 3800) + ')','-1', '8000'), 'geography', 'varchar(8000)'), 'nvarchar', 'varchar') as QueryCreacion2;"; ca.Source = new SqlSource(null, 3, null, consulta, null, null); ca.Sink = new SqlSink(); la1.Add(ca); fea.Activities = la1; la.Add(fea); pipe.Activities = la; IDictionary <string, ParameterSpecification> tablasACopiar = new Dictionary <string, ParameterSpecification>(); tablasACopiar.Add("tablasACopiar", new ParameterSpecification("Array", tablas)); pipe.Parameters = tablasACopiar; client.Pipelines.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "PipeForEachClaim", pipe); Console.WriteLine("Pipe creado, desea correrlo ahora? (s/n)"); if (Console.ReadLine() == "s") { client.Pipelines.CreateRun(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "PipeForEachClaim"); Console.WriteLine("Run creado! Seguimos creando los de Datastaging."); } crearPipesDinamismoDataStaging(client); }