protected void InitalizeAdgroupKeywordGK(SqlCommand insertCommand, int accountID, int channelID, bool hasBackOffice) { int gkManagerCallsCounter = 0; bool callSuccess = false; // try 3 time to get campaignGK from GKManager, if failed the trow Exception while (!callSuccess) { try { if (insertCommand.Parameters["@Keyword_GK"].Value.ToString() == string.Empty || insertCommand.Parameters["@Keyword_gk"].Value == DBNull.Value) { return; } // Convert DBNull to null if (insertCommand.Parameters["@MatchType"].Value == DBNull.Value) { insertCommand.Parameters["@MatchType"].Value = MatchType.Unidentified; } insertCommand.Parameters["@PPC_Keyword_GK"].Value = GkManager.GetAdgroupKeywordGK(accountID, channelID, (long)Convert.ToInt32(insertCommand.Parameters["@Campaign_GK"].Value), (long)Convert.ToInt32(insertCommand.Parameters["@AdGroup_GK"].Value), (long)Convert.ToInt32(insertCommand.Parameters["@Keyword_GK"].Value), (MatchType)(insertCommand.Parameters["@MatchType"].Value), insertCommand.Parameters["@destUrl"].Value.ToString(), hasBackOffice ? (long?)Convert.ToInt32(insertCommand.Parameters["@Gateway_gk"].Value): null); //insertCommand.Parameters["@PPC_Keyword_GK"].Value = // GkManager.GetAdgroupKeywordGK(accountID, // channelID, // (long)Convert.ToInt32(insertCommand.Parameters["@Campaign_GK"].Value), // (long)Convert.ToInt32(insertCommand.Parameters["@AdGroup_GK"].Value), // (long)Convert.ToInt32(insertCommand.Parameters["@Keyword_GK"].Value), // (MatchType)(insertCommand.Parameters["@MatchType"].Value), // insertCommand.Parameters["@kwDestUrl"].Value.ToString() == "defult url" ? // null : insertCommand.Parameters["@kwDestUrl"].Value.ToString(), // null); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } }
protected void InitalizeGatewayGK(SqlCommand insertCommand, int accountID, GatewayReferenceType gatewayReferenceType, int channelID) { int gkManagerCallsCounter = 0; bool callSuccess = false; // try 3 time to get campaignGK from GKManager, if failed the trow Exception while (!callSuccess) { try { if (insertCommand.Parameters["@Gateway_id"].Value == DBNull.Value) { return; } // Convert DBNull to null if (insertCommand.Parameters["@destUrl"].Value == DBNull.Value) { insertCommand.Parameters["@destUrl"].Value = string.Empty; } if (insertCommand.Parameters["@headline"].Value == DBNull.Value) { insertCommand.Parameters["@headline"].Value = string.Empty; } insertCommand.Parameters["@Gateway_gk"].Value = GkManager.GetGatewayGK(accountID, (long)Convert.ToInt32(insertCommand.Parameters["@Gateway_id"].Value), channelID, (long)Convert.ToInt32(insertCommand.Parameters["@Campaign_GK"].Value), (long)Convert.ToInt32(insertCommand.Parameters["@AdGroup_GK"].Value), gatewayReferenceType == GatewayReferenceType.Keyword ? "KW: " + insertCommand.Parameters["@kwSite"].Value.ToString() : insertCommand.Parameters["@headline"].Value.ToString(), insertCommand.Parameters["@destUrl"].Value.ToString(), gatewayReferenceType, gatewayReferenceType == GatewayReferenceType.Keyword ? (long)Convert.ToInt32(insertCommand.Parameters["@Keyword_GK"].Value) : (long)Convert.ToInt32(insertCommand.Parameters["@Creative_gk"].Value)); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { //Log.Write(String.Format("GkManager.GetGatewayGK failed."), ex, LogMessageType.Error); throw ex; } } }
protected override void InitalizeGatewayGK(SqlCommand insertCommand, SourceDataRowReader <RetrieverDataRow> reader, FieldElement fe) { if (fe.DBFieldName.ToLower() == "gateway_id") { insertCommand.Parameters["@Gateway_GK"].Value = GkManager.GetGatewayGK(_accountID, Convert.ToInt64(reader.CurrentRow.Fields[fe.Value])); } }
/// <summary> /// Initalize GatewayGK by the gateway_id fields for data from backoffice. /// </summary> /// <param name="insertCommand">The field GatewayGK in the insert command will be initalized.</param> /// <param name="xmlReader">The xml reader that contain the gateway_id value.</param> /// <param name="fe">The current field we fetach from xml reader.</param> protected override void InitalizeGatewayGK(SqlCommand insertCommand, XmlTextReader xmlReader, FieldElement fe) { if (fe.DBFieldName.ToLower() == "gateway_id") { insertCommand.Parameters["@Gateway_GK"].Value = GkManager.GetGatewayGK(_accountID, Convert.ToInt64(xmlReader.GetAttribute(fe.Value))); } }
protected void InitalizeSiteGK(SqlCommand insertCommand, int accountID) { int gkManagerCallsCounter = 0; bool callSuccess = false; if (insertCommand.Parameters["@site"].Value == DBNull.Value) { // Yaniv: add gatway to the log message Log.Write(String.Format("site have no name.", insertCommand.Parameters["@Campaign_GK"].Value) , LogMessageType.Warning); insertCommand.Parameters["@site"].Value = StringFieldNullValue; } else { string siteUrl = insertCommand.Parameters["@site"].Value.ToString(); string url = string.Empty; siteUrl = GetCleanDomainName(siteUrl); try { Uri uri = new Uri(siteUrl); url = uri.Host; } catch (Exception ex) { url = insertCommand.Parameters["@site"].Value.ToString(); } // try 3 time to get campaignGK from GKManager, if failed the trow Exception while (!callSuccess) { try { insertCommand.Parameters["@site_GK"].Value = GkManager.GetSiteGK(accountID, insertCommand.Parameters["@site"].Value.ToString()); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } } }
protected void InitalizeCampaignGK(SqlCommand insertCommand, int channelID, int accountID) { int gkManagerCallsCounter = 0; bool callSuccess = false; if (insertCommand.Parameters["@campaign"].Value == DBNull.Value) { // Yaniv: add gatway to the log message //Log.Write(String.Format("campaign have no name.", insertCommand.Parameters["@campaignGK"].Value) // , LogMessageType.Warning); insertCommand.Parameters["@campaign"].Value = StringFieldNullValue; } else { long lVal = FetchCampaignID(insertCommand); // try 3 time to get campaignGK from GKManager, if failed the trow Exception while (!callSuccess) { try { // Have campaignid if (lVal != 0) { insertCommand.Parameters["@Campaign_GK"].Value = GkManager.GetCampaignGK(accountID, channelID, insertCommand.Parameters["@campaign"].Value.ToString(), lVal); } else // Don't have campaignid { insertCommand.Parameters["@Campaign_GK"].Value = GkManager.GetCampaignGK(accountID, channelID, insertCommand.Parameters["@campaign"].Value.ToString(), null); } callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } } }
protected virtual void HandleBackOfficeNode(string nodeName, string nodeValue, FieldElementSection rawDataFields, SqlCommand insertCommand) { try { if (nodeName == String.Empty || nodeName == null) { throw new ArgumentException("Invalid node name. Cannot be null or empty."); } FieldElement fe = rawDataFields.Fields[nodeName]; //if (fe != null) // insertCommand.Parameters["@" + fe.DBFieldName].Value = // Convert.ChangeType(nodeValue, Type.GetType(_tableTypeMappings[fe.DBFieldType.ToLower()])); if (fe == null || !fe.InsertToDB || !fe.Enabled) { return; } if (!String.IsNullOrEmpty(nodeValue)) { insertCommand.Parameters["@" + fe.DBFieldName].Value = Convert.ChangeType(nodeValue, Type.GetType(_tableTypeMappings[fe.DBFieldType.ToLower()])); // Initalize Gateway_GK if (rawDataFields.Fields[nodeName].DBFieldName.ToLower() == "gateway_id") { insertCommand.Parameters["@Gateway_GK"].Value = GkManager.GetGatewayGK(_accountID, Convert.ToInt64(nodeValue)); } } else { // Initalize field with null value. if (fe.DBDefaultValue == null) { insertCommand.Parameters["@" + fe.DBFieldName].Value = DBNull.Value; } else { insertCommand.Parameters["@" + fe.DBFieldName].Value = Convert.ChangeType(fe.DBDefaultValue, Type.GetType(_tableTypeMappings[fe.DBFieldType.ToLower()])); } } } catch (Exception ex) { string str = ex.Message; } }
private void InitalizeParametersGK(Dictionary <string, int> headersCSV, SqlCommand insertCommand, int accountID, int channelID, string[] Fields) { //bool hasBackOffice = false; //int accountID; //if (Int32.TryParse( insertCommand.Parameters["@Account_ID"].ToString(), out accountID)) // hasBackOffice = HasBackOffice(accountID); bool hasBackOffice = HasBackOffice(accountID); if (_tableName == "Paid_API_AllColumns") { Dictionary <string, string> gatewayNameFields = new Dictionary <string, string>(); // Initalize a Dictionary with report fields & gateway Name Fields. InitalizeGatewayNameMapping(gatewayNameFields, "GatewayName"); InitalizeCreativeFields(headersCSV, insertCommand, Fields); // Initalize Gateway ID if (hasBackOffice) { InitalizeGatewayID(insertCommand, channelID, gatewayNameFields); } InitalizeCreativeGKFields(insertCommand, channelID, hasBackOffice, accountID); } else if (_tableName == "Paid_API_Content") { InitalizeContentGKFields(insertCommand, channelID, hasBackOffice, accountID); } else if (_tableName == "BackOffice_Client_Gateway") { //Dictionary<string, string> babylonGatewayNameFields = new Dictionary<string, string>(); //// Initalize a Dictionary with report fields & gateway Name Fields. //InitalizeGatewayNameMapping(babylonGatewayNameFields, "BabylonGatewayName"); //string gatewayID = Fields[headersCSV["gateway_id"]].ToString(); //foreach (string gatewayName in babylonGatewayNameFields.Keys) //{ // if (gatewayID.Contains(gatewayName)) // { // insertCommand.Parameters["@gateway_ID"].Value = Convert.ToInt32(babylonGatewayNameFields[gatewayName]) + gatewayID.Substring(gatewayID.IndexOf(gatewayName) + gatewayName.Length); // break; // } //} // Initalize gateway_GK insertCommand.Parameters["@gateway_GK"].Value = GkManager.GetGatewayGK( Convert.ToInt32(insertCommand.Parameters["@Account_ID"].Value), Convert.ToInt64(insertCommand.Parameters["@gateway_ID"].Value)); } }
protected void InitalizePPCSiteGK(SqlCommand insertCommand, int channelID, int accountID, bool hasBackOffice) { int gkManagerCallsCounter = 0; bool callSuccess = false; if (insertCommand.Parameters["@site_GK"].Value.ToString() == string.Empty || insertCommand.Parameters["@site_GK"].Value == DBNull.Value) { return; } else { // try 3 time to get GetAdgroupSiteGK from GKManager, if failed the trow Exception while (!callSuccess) { try { // Initalize MatchType with unknwon value if it's empty. if (insertCommand.Parameters["@MatchType"].Value.ToString() == string.Empty) { insertCommand.Parameters["@MatchType"].Value = MatchType.Unidentified; } insertCommand.Parameters["@PPC_Site_gk"].Value = GkManager.GetAdgroupSiteGK(accountID, channelID, (long)insertCommand.Parameters["@Campaign_GK"].Value, (long)insertCommand.Parameters["@AdGroup_GK"].Value, (long)insertCommand.Parameters["@site_GK"].Value, insertCommand.Parameters["@site"].Value.ToString(), (MatchType)insertCommand.Parameters["@MatchType"].Value, hasBackOffice ? (long?)insertCommand.Parameters["@Gateway_gk"].Value : null); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } } }
protected void InitalizeAdgroupCreativeGK(SqlCommand insertCommand, int accountID, int channelID, bool hasBackOffice) { int gkManagerCallsCounter = 0; bool callSuccess = false; // try 3 time to get campaignGK from GKManager, if failed the trow Exception while (!callSuccess) { try { if (insertCommand.Parameters["@Creative_gk"].Value.ToString() == string.Empty || insertCommand.Parameters["@Creative_gk"].Value == DBNull.Value) { return; } // Convert DBNull to null if (insertCommand.Parameters["@creativeVisUrl"].Value == DBNull.Value) { insertCommand.Parameters["@creativeVisUrl"].Value = string.Empty; } insertCommand.Parameters["@PPC_Creative_GK"].Value = GkManager.GetAdgroupCreativeGK(accountID, channelID, (long)Convert.ToInt32(insertCommand.Parameters["@Campaign_GK"].Value), (long)Convert.ToInt32(insertCommand.Parameters["@AdGroup_GK"].Value), (long)Convert.ToInt32(insertCommand.Parameters["@Creative_gk"].Value), insertCommand.Parameters["@destUrl"].Value.ToString(), insertCommand.Parameters["@creativeVisUrl"].Value.ToString(), hasBackOffice ? (long?)Convert.ToInt32(insertCommand.Parameters["@Gateway_gk"].Value) : null); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } }
protected void InitalizeAdGroupGK(SqlCommand insertCommand, int channelID, int accountID, long campaignGK) { int gkManagerCallsCounter = 0; bool callSuccess = false; if (String.IsNullOrEmpty(insertCommand.Parameters["@adgroup"].Value.ToString()) || insertCommand.Parameters["@adgroup"].Value == DBNull.Value) { // If adgroup don't exist we initalize it with campaign name. insertCommand.Parameters["@adgroup"].Value = insertCommand.Parameters["@campaign"].Value; } if (insertCommand.Parameters["@adgroup"].Value.ToString() == StringFieldNullValue) { insertCommand.Parameters["@AdGroup_GK"].Value = 0; return; } // try 3 time to get campaignGK from GKManager, if failed the trow Exception while (!callSuccess) { try { long?originalID = GetAdGroupID(insertCommand); insertCommand.Parameters["@AdGroup_GK"].Value = GkManager.GetAdgroupGK(accountID, channelID, campaignGK, insertCommand.Parameters["@adgroup"].Value.ToString(), originalID); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } }
protected override PpcDataUnit NextRow() { while (_innerReader.Read()) { if (_innerReader.Name == "Row") { string row = _innerReader.ReadOuterXml(); XmlDocument xd = new XmlDocument(); xd.LoadXml(row); PpcDataUnit objPpcData = new PpcDataUnit(); objPpcData.AccountID = GetAccountIDFromName(xd.DocumentElement["AccountName"].GetAttribute("value")); objPpcData.AdDistribution = xd.DocumentElement["AdDistribution"].GetAttribute("value"); objPpcData.AdId = Convert.ToInt32(xd.DocumentElement["AdId"].GetAttribute("value")); objPpcData.AdGroupName = xd.DocumentElement["AdGroupName"].GetAttribute("value"); objPpcData.AdType = Convert.ToInt32(xd.DocumentElement["AdType"].GetAttribute("value")); objPpcData.CampaignName = xd.DocumentElement["CampaignName"].GetAttribute("value"); //p.DestinationUrl =xd.DocumentElement["DestinationUrl"].GetAttribute("value"); objPpcData.Impressions = Convert.ToInt32(xd.DocumentElement["Impressions"].GetAttribute("value")); objPpcData.Clicks = Convert.ToInt32(xd.DocumentElement["Clicks"].GetAttribute("value")); objPpcData.Ctr = decimal.Parse(xd.DocumentElement["Ctr"].GetAttribute("value")); objPpcData.AverageCpc = decimal.Parse(xd.DocumentElement["AverageCpc"].GetAttribute("value")); objPpcData.Spend = decimal.Parse(xd.DocumentElement["Spend"].GetAttribute("value")); objPpcData.AveragePosition = decimal.Parse(xd.DocumentElement["AveragePosition"].GetAttribute("value")); objPpcData.Conversions = decimal.Parse(xd.DocumentElement["Conversions"].GetAttribute("value")); objPpcData.ConversionRate = decimal.Parse(xd.DocumentElement["ConversionRate"].GetAttribute("value")); //p.Keyword = xd.DocumentElement["Keyword"].GetAttribute("value"); string d = xd.DocumentElement["GregorianDate"].GetAttribute("value"); // +" 00:00:01"; objPpcData.GregorianDate = DateTime.ParseExact(d, "MM/dd/yyyy", null); //xd.DocumentElement["GregorianDate"].GetAttribute("value")); //p.Matchtype = xd.DocumentElement["MatchType"].GetAttribute("value"); objPpcData.AdGroupId = Convert.ToInt32(xd.DocumentElement["AdGroupId"].GetAttribute("value")); objPpcData.Channel_id = 14; objPpcData.Downloaded_date = DateTime.Now; objPpcData.Day_code = Core.Utilities.DayCode.ToDayCode(DateTime.Now); objPpcData.GatewayId = Convert.ToInt32(BusinessObjects.Tracker.ExtractTracker(_innerReader.ReadElementString("Gateway"), BusinessObjects.Tracker.GetAccountTrackerPattern(objPpcData.AccountID)));// GetGateway(_innerReader.ReadElementString("Gateway")); objPpcData.CampaignGk = GkManager.GetCampaignGK(objPpcData.AccountID, objPpcData.Channel_id, objPpcData.CampaignName, null); objPpcData.AdgroupGk = GkManager.GetAdgroupGK(objPpcData.AccountID, objPpcData.Channel_id, objPpcData.CampaignGk, objPpcData.AdGroupName, objPpcData.AdGroupId); //p.CreativeGk = GkManager.GetCreativeGK (p.AccountID,); //objPpcData.GatewayGk = GkManager.GetGatewayGK(objPpcData.AccountID,objPpcData.GatewayId,objPpcData.Channel_id,objPpcData.CampaignGK,objPpcData.Adgroup_Gk,null,); //p.PPC_CreativeGk = GkManager.GetAdgroupCreativeGK(p.AccountID,p.Channel_id,p.CampaignGk,p.AdgroupGk,p.CreativeGk,p.DestinationUrl,p.GatewayGk); objPpcData.KeywordGk = GkManager.GetKeywordGK(objPpcData.AccountID, objPpcData.Keyword); //objPpcData.PPC_KeywordGk = GkManager.GetAdgroupKeywordGK(objPpcData.AccountID,objPpcData.Channel_id,objPpcData.CampaignGk,objPpcData.AdgroupGk,objPpcData.Keywordid ,objPpcData.Matchtype,objPpcData.DestinationUrl,objPpcData.GatewayGk); return(objPpcData); } } return(new PpcDataUnit()); }
/*=========================*/ #endregion #region Initalize GK methods /*=========================*/ protected void InitalizeKeywordGK(SqlCommand insertCommand, int accountID) { int gkManagerCallsCounter = 0; bool callSuccess = false; if (insertCommand.Parameters["@kwSite"].Value == DBNull.Value) { insertCommand.Parameters["@kwSite"].Value = StringFieldNullValue; insertCommand.Parameters["@Keyword_GK"].Value = 0; return; } // try 3 time to get KeywordGK from GKManager, if failed the trow Exception while (!callSuccess) { try { insertCommand.Parameters["@Keyword_GK"].Value = GkManager.GetKeywordGK(accountID, insertCommand.Parameters["@kwSite"].Value.ToString()); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } }
protected override PpcDataUnit NextRow() { try { if (_xd.ChildNodes[0].ChildNodes.Count > _RowNumber) { PpcDataUnit objPpcData = new PpcDataUnit(); AdPerformanceValues ad = new AdPerformanceValues(); for (int i = 0; i < _Columns; i++) { string nameNode = _xd.ChildNodes[0].ChildNodes[_RowNumber].ChildNodes[i].Name; string valueNode = _xd.ChildNodes[0].ChildNodes[_RowNumber].ChildNodes[i].Attributes[0].Value; switch (nameNode) { case "AccountName": objPpcData.AccountID = GetAccountIDByName(valueNode); break; case "AdDistribution": objPpcData.AdDistribution = valueNode; break; case "AdId": objPpcData.AdId = valueNode != string.Empty ? Convert.ToInt32(valueNode) : 0; break; case "AdGroupName": objPpcData.AdGroupName = valueNode; break; case "AdType": objPpcData.AdType = (int)Enum.Parse(typeof(AdVariation), valueNode.Substring(0, valueNode.IndexOf(" ad")), true); break; case "CampaignName": objPpcData.CampaignName = valueNode; break; case "DestinationUrl": objPpcData.DestinationUrl = valueNode; break; case "Impressions": objPpcData.Impressions = valueNode != string.Empty ? Convert.ToInt32(valueNode) : 0; break; case "Clicks": objPpcData.Clicks = valueNode != string.Empty ? Convert.ToInt32(valueNode) : 0; break; case "Ctr": objPpcData.Ctr = valueNode != string.Empty ? decimal.Parse(valueNode) : 0; break; case "AverageCpc": objPpcData.AverageCpc = valueNode != string.Empty ? decimal.Parse(valueNode) : 0; break; case "Spend": objPpcData.Spend = valueNode != string.Empty ? decimal.Parse(valueNode) : 0; break; case "AveragePosition": objPpcData.AveragePosition = valueNode != string.Empty ? decimal.Parse(valueNode) : 0; break; case "Conversions": objPpcData.Conversions = valueNode != string.Empty ? decimal.Parse(valueNode) : 0; break; case "ConversionRate": objPpcData.ConversionRate = valueNode != string.Empty ? decimal.Parse(valueNode):0; break; case "Keyword": objPpcData.Keyword = valueNode; break; case "GregorianDate": string d = valueNode; objPpcData.GregorianDate = DateTime.ParseExact(d, "M/d/yyyy", null); break; case "MatchType": objPpcData.Matchtype = (MatchType)Enum.Parse(typeof(MatchType), valueNode, true); break; default: break; } } objPpcData.AdDistribution = Ads[objPpcData.AdId].AdDescription; objPpcData.AdTitle = Ads[objPpcData.AdId].AdTitle; objPpcData.Channel_id = 14; objPpcData.Downloaded_date = DateTime.Now; objPpcData.Day_code = Core.Utilities.DayCode.ToDayCode(DateTime.Now); objPpcData.CampaignGk = GkManager.GetCampaignGK(objPpcData.AccountID, objPpcData.Channel_id, objPpcData.CampaignName, null); objPpcData.GatewayGk = GkManager.GetGatewayGK(objPpcData.AccountID, objPpcData.GatewayId, objPpcData.Channel_id, objPpcData.CampaignGk, objPpcData.AdgroupGk, null, objPpcData.DestinationUrl, GatewayReferenceType.Keyword, objPpcData.KeywordGk); objPpcData.AdgroupGk = GkManager.GetAdgroupGK(objPpcData.AccountID, objPpcData.Channel_id, objPpcData.CampaignGk, objPpcData.AdGroupName, objPpcData.AdGroupId); objPpcData.CreativeGk = GkManager.GetCreativeGK(objPpcData.AccountID, objPpcData.AdTitle, objPpcData.AdDistribution, string.Empty); objPpcData.PPC_CreativeGk = GkManager.GetAdgroupCreativeGK(objPpcData.AccountID, objPpcData.Channel_id, objPpcData.CampaignGk, objPpcData.AdgroupGk, objPpcData.CreativeGk, objPpcData.DestinationUrl, string.Empty, objPpcData.GatewayGk); objPpcData.KeywordGk = GkManager.GetKeywordGK(objPpcData.AccountID, objPpcData.Keyword); objPpcData.PPC_KeywordGk = GkManager.GetAdgroupKeywordGK(objPpcData.AccountID, objPpcData.Channel_id, objPpcData.CampaignGk, objPpcData.AdgroupGk, objPpcData.KeywordId, objPpcData.Matchtype, objPpcData.DestinationUrl, objPpcData.GatewayGk); _RowNumber += 1; return(objPpcData); } else { return(null); } } catch (Exception ex) { throw ex; } }
protected void InitalizeCreativeGK(SqlCommand insertCommand, int accountID) { int gkManagerCallsCounter = 0; bool callSuccess = false; // Creative_gk if ((insertCommand.Parameters["@headline"].Value == DBNull.Value) && (insertCommand.Parameters["@desc1"].Value == DBNull.Value) && (insertCommand.Parameters["@desc2"].Value == DBNull.Value)) { // Yaniv: report to log. insertCommand.Parameters["@headline"].Value = StringFieldNullValue; insertCommand.Parameters["@desc1"].Value = StringFieldNullValue; insertCommand.Parameters["@desc2"].Value = StringFieldNullValue; insertCommand.Parameters["@Creative_gk"].Value = 0; return; } // Convert DBNull to null if (insertCommand.Parameters["@headline"].Value == DBNull.Value) { insertCommand.Parameters["@headline"].Value = string.Empty; } if (insertCommand.Parameters["@desc1"].Value == DBNull.Value) { insertCommand.Parameters["@desc1"].Value = string.Empty; } if (insertCommand.Parameters["@desc2"].Value == DBNull.Value) { insertCommand.Parameters["@desc2"].Value = string.Empty; } // try 3 time to get campaignGK from GKManager, if failed the trow Exception while (!callSuccess) { try { insertCommand.Parameters["@Creative_gk"].Value = GkManager.GetCreativeGK(accountID, insertCommand.Parameters["@headline"].Value.ToString(), insertCommand.Parameters["@desc1"].Value.ToString(), insertCommand.Parameters["@desc2"].Value.ToString()); callSuccess = true; } catch (TimeoutException ex) { ++gkManagerCallsCounter; if (gkManagerCallsCounter > MaxNumOFGkManagerCallsTries) { throw ex; } } catch (Exception ex) { throw ex; } } }
/*=========================*/ #endregion #region Private Methods /*=========================*/ /// <summary> /// Fills DB with data that retrieved by EasyForex BackOffice /// </summary> /// <param name="dataFromBO">Data from BackOffice to write to DB.</param> private void ProcessData(string xmlPath, DateTime _requiredDay) { SqlCommand insertCommand = InitalizeInsertCommand(); using (ConnectionKey key = DataManager.Current.OpenConnection()) { // Init insertCommand with the data manger connection DataManager.ApplyConnection(insertCommand); // Yaniv: add Exception ///////////////////// Type t = Type.GetType(Instance.Configuration.Options["BackOfficeXmlReader"]); System.Reflection.ConstructorInfo constructor = t.GetConstructor(new Type[] { typeof(string) }); //if (constructor == null) // throw new blahl //BackOfficeXmlReader reader = (BackOfficeXmlReader) constructor.Invoke(new object[] { xmlPath }); //////////////////// //EasyForexReader reader = new EasyForexReader(xmlPath); // Initalize const parmaters. insertCommand.Parameters["@Downloaded_Date"].Value = DateTime.Now; insertCommand.Parameters["@day_Code"].Value = DayCode(_requiredDay); insertCommand.Parameters["@hour_Code"].Value = DayCode(_requiredDay) == DayCode(DateTime.Today) ? DateTime.Now.Hour : 0; insertCommand.Parameters["@account_ID"].Value = Instance.AccountID; //insertCommand.Parameters["@channel_ID"].Value = ChannelID; using (EasyForexReader reader = (EasyForexReader)constructor.Invoke(new object[] { xmlPath })) { // Read all rows in the BackOffice XML and insert them to the DB. while (reader.Read()) { if (reader.CurrentRow.GatewayID == 0) { Log.Write("Error parsing BackOffice row, Can't insert row to DB.", LogMessageType.Error); continue; } InitalizeParametersWithNull(insertCommand); // Initalize command parmaters. insertCommand.Parameters["@gateway_id"].Value = reader.CurrentRow.GatewayID; insertCommand.Parameters["@total_Hits"].Value = reader.CurrentRow.TotalHits; insertCommand.Parameters["@new_Leads"].Value = reader.CurrentRow.NewLeads; insertCommand.Parameters["@new_Users"].Value = reader.CurrentRow.NewUsers; insertCommand.Parameters["@new_Active_Users"].Value = reader.CurrentRow.NewActiveUsers; insertCommand.Parameters["@new_Net_Deposits_in_dollars"].Value = reader.CurrentRow.NewNetDepostit; insertCommand.Parameters["@active_Users"].Value = reader.CurrentRow.ActiveUsers; insertCommand.Parameters["@total_Net_Deposits_in_dollars"].Value = reader.CurrentRow.TotalNetDeposit; insertCommand.Parameters["@Gateway_GK"].Value = GkManager.GetGatewayGK(Instance.AccountID, reader.CurrentRow.GatewayID); try { // Execute command. insertCommand.ExecuteNonQuery(); } catch (Exception ex) { Log.Write(string.Format("Error in Inserting data to BackOffice_Client_Gateway table in easynet_Oltp DB."), ex); } } } } }