Exemplo n.º 1
0
        private void BuildCampaignGKList()
        {
            ArrayList gks = new ArrayList();

            for (int i = 0; i < _results.Count; i++)
            {
                CampaignAllMeasures cam = (CampaignAllMeasures)_results[i];
                gks.Add(cam.CampaignGK);
            }

            if (ParentWorkflow.InternalParameters.Contains("CampaignGKList"))
            {
                ArrayList gkList = (ArrayList)ParentWorkflow.InternalParameters["CampaignGKList"];
                for (int i = 0; i < gkList.Count; i++)
                {
                    if (!gks.Contains(gkList[i]))
                    {
                        gks.Add(gkList[i]);
                    }
                }

                ParentWorkflow.InternalParameters["CampaignGKList"] = gks;
            }
            else
            {
                ParentWorkflow.InternalParameters.Add("CampaignGKList", gks);
            }
        }
Exemplo n.º 2
0
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            DataManager.ConnectionString = ParentWorkflow.Parameters["ConnectionString"].ToString();
            DataManager.CommandTimeout   = 0;

            //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"]);

                //Create the command.
                using (DataManager.Current.OpenConnection())
                {
                    SqlCommand accountCampaigns = BuildCommand();
                    accountCampaigns.ExecuteNonQuery();

                    AccountAlertFilters filters = Filters;
                    Easynet.Edge.Alerts.Core.AlertMeasures measures = AlertMeasures;

                    //Now we need to loop on the table and build the list of campaigns and deltas.
                    SqlDataReader sdr         = GetMeasuredData(ParentWorkflow.Parameters);
                    string        accountName = String.Empty;
                    while (sdr.Read())
                    {
                        CampaignAllMeasures cam = new CampaignAllMeasures(sdr, filters, measures, _alertType);
                        accountName         = cam.AccountName;
                        cam.TimeMeasurement = this.TimeMeasurement;
                        cam.MeasurementType = this.MeasurementType;

                        //Only add if we're going to include it in the list (i.e. passed the min)
                        if (cam.Include)
                        {
                            _results.Add(cam);
                        }
                    }

                    ParentWorkflow.InternalParameters.Add("AccountName", accountName);

                    //Add a list of all campaign GK's we have, so in case someone wants to use
                    //ad groups after us without giving a specific campaign GK. They'll have them.
                    BuildCampaignGKList();

                    sdr.Close();
                    sdr.Dispose();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception at Account Campaigns: " + ex.ToString());
                throw ex;
            }

            return(ActivityExecutionStatus.Closed);
        }
Exemplo n.º 3
0
        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"]);
                DateTime cur        = DayCode.GenerateDateTime(ParentWorkflow.Parameters["CurrentDayCode"]);
                DateTime comp       = DayCode.GenerateDateTime(ParentWorkflow.Parameters["CompareDayCode"]);
                int      channelID  = Convert.ToInt32(ParentWorkflow.Parameters["ChannelID"]);
                int      campaignGK = Convert.ToInt32(ParentWorkflow.Parameters["CampaignGK"]);

                //Create the command.
                using (DataManager.Current.OpenConnection())
                {
                    SqlCommand clicks = DataManager.CreateCommand("SP_Alerts_SumOfClicksPerAccount", System.Data.CommandType.StoredProcedure);
                    clicks.Parameters.Add("@Account_id", System.Data.SqlDbType.NVarChar);
                    clicks.Parameters.Add("@CurrentDayCode", System.Data.SqlDbType.NVarChar);
                    clicks.Parameters.Add("@CompareDayCode", System.Data.SqlDbType.NVarChar);
                    clicks.Parameters.Add("@channel_id", System.Data.SqlDbType.NVarChar);
                    clicks.Parameters.Add("@Campaign_GK", System.Data.SqlDbType.NVarChar);

                    clicks.Parameters.Add("@RC", System.Data.SqlDbType.Int);
                    clicks.Parameters["@RC"].Direction = System.Data.ParameterDirection.ReturnValue;

                    clicks.Parameters["@Account_id"].Value  = accountID.ToString();
                    clicks.Parameters["@channel_id"].Value  = channelID.ToString();
                    clicks.Parameters["@Campaign_GK"].Value = campaignGK.ToString();

                    //format the current and compare dates.
                    string curDate  = cur.ToString("yyyyMMdd");
                    string compDate = comp.ToString("yyyyMMdd");

                    clicks.Parameters["@CurrentDayCode"].Value = curDate;
                    clicks.Parameters["@CompareDayCode"].Value = compDate;

                    clicks.ExecuteNonQuery();
                    int d = Convert.ToInt32(clicks.Parameters["@RC"].Value);
                    ClicksDelta = (float)d;

                    CampaignAllMeasures cam = new CampaignAllMeasures();
                    cam.CampaignGK        = campaignGK;
                    cam.ClicksChangeRatio = ClicksDelta;
                    cam.ChannelID         = channelID;
                    cam.AccountID         = accountID;

                    if (ParentWorkflow.InternalParameters.ContainsKey("MeasuredParams"))
                    {
                        MeasuredParameters mps = (MeasuredParameters)ParentWorkflow.InternalParameters["MeasuredParams"];
                        if (!mps.ContainsKey(cam.CampaignGK))
                        {
                            mps.Add(cam.CampaignGK, cam);
                        }

                        ParentWorkflow.InternalParameters["MeasuredParams"] = mps;
                    }
                    else
                    {
                        MeasuredParameters mps = new MeasuredParameters();
                        mps.Add(cam.CampaignGK, cam);
                        ParentWorkflow.InternalParameters.Add("MeasuredParams", mps);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            //Put the result in the clicks property.

            return(ActivityExecutionStatus.Closed);
        }