private void BuildAdgroupGKList() { ArrayList gks = new ArrayList(); for (int i = 0; i < _results.Count; i++) { AdgroupAllMeasures aam = (AdgroupAllMeasures)_results[i]; AdgroupGK agk = new AdgroupGK(); agk._adgroupGK = aam.GK; agk._campaignGK = aam.CampaignGK; gks.Add(agk); } if (ParentWorkflow.InternalParameters.ContainsKey("AdgroupGKList")) { ArrayList gkList = (ArrayList)ParentWorkflow.InternalParameters["AdgroupGKList"]; for (int i = 0; i < gkList.Count; i++) { if (!gks.Contains(gkList[i])) { gks.Add(gkList[i]); } } ParentWorkflow.InternalParameters["AdgroupGKList"] = gks; } else { ParentWorkflow.InternalParameters.Add("AdgroupGKList", gks); } }
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { DataManager.ConnectionString = ParentWorkflow.Parameters["ConnectionString"].ToString(); //Run the stored procedure, based on the params we have. try { int accountID = Convert.ToInt32(ParentWorkflow.Parameters["AccountID"]); int channelID = Convert.ToInt32(ParentWorkflow.Parameters["ChannelID"]); //If we got the CampaignGK and AdgroupGK parameters, this means that someone wants to run us //with a specific campaign/adgroup. if (ParentWorkflow.Parameters.Contains("AdgroupGK") && ParentWorkflow.Parameters.Contains("CampaignGK")) { int adgroupGK = Convert.ToInt32(ParentWorkflow.Parameters["AdgroupGK"]); int campaignGK = Convert.ToInt32(ParentWorkflow.Parameters["CampaignGK"]); LoadGatewaysForAdgroup(accountID, channelID, campaignGK, adgroupGK); } else { //We didn't get a campaign GK parameter, this means that we need to check if //we have a list of campaign GK's from somewhere (i.e. AccountCampaigns). if (ParentWorkflow.InternalParameters.Contains("AdgroupGKList")) { ArrayList gks = (ArrayList)ParentWorkflow.InternalParameters["AdgroupGKList"]; for (int i = 0; i < gks.Count; i++) { AdgroupGK adg = (AdgroupGK)gks[i]; LoadGatewaysForAdgroup(accountID, channelID, adg._campaignGK, adg._adgroupGK); } } } } catch (Exception ex) { Console.WriteLine("Exception at Adgroup Gateways: " + ex.ToString()); throw ex; } return(ActivityExecutionStatus.Closed); }