public static void MD_MetricsViewer(SqlInt32 account, SqlString deliveryTableName, out SqlChars metricsSelect) { using (var objectsConnection = new SqlConnection("context connection=true")) { objectsConnection.Open(); int accountId = Convert.ToInt32(account.ToString()); metricsSelect = new SqlChars(EdgeViewer.GetMetricsView(accountId, deliveryTableName.ToString(), objectsConnection)); } }
public static void MD_ObjectsViewer(SqlInt32 account, SqlString stagingTableName) { using (var objectsConnection = new SqlConnection("context connection=true")) { objectsConnection.Open(); int accountId = Convert.ToInt32(account.ToString()); EdgeViewer.GetObjectsView(accountId, stagingTableName.ToString(), objectsConnection, SqlContext.Pipe); } }
protected override void OnStage(Delivery delivery, int pass) { CurrentDelivery = delivery; if (pass == STAGING_PASS_OBJECTS) { // IDENTITYMANAGER: insert new EdgeObjects and update existing from Delivery to EdgeObject DB by IdentityStatus Identify(2, delivery); } else if (pass == STAGING_PASS_METRICS) { // TABLEMANAGER: insert delivery metrics into staging if (CurrentDelivery.Parameters[Consts.DeliveryHistoryParameters.StagingMetricsTableName] != null && CurrentDelivery.Parameters[Consts.DeliveryHistoryParameters.DeliveryMetricsTableName] != null) { var deliveryTable = CurrentDelivery.Parameters[Consts.DeliveryHistoryParameters.DeliveryMetricsTableName].ToString(); var stagingTable = CurrentDelivery.Parameters[Consts.DeliveryHistoryParameters.StagingMetricsTableName].ToString(); if (!stagingTable.ToLower().StartsWith("[dbo]")) { stagingTable = String.Format("[dbo].[{0}]", stagingTable); } // for Debug only - execute Edge Viewer in .NET if (Options.IdentityInDebug) { EdgeViewer.StageMetrics(delivery.Account.ID, deliveryTable, stagingTable, _deliverySqlConnection); } // to be executed in real scenario - execute SQL CLR (DB stored procedure that executes .NET code of Edge Viewer) else { using (var cmd = SqlUtility.CreateCommand("EdgeObjects.dbo.MetricsStaging", CommandType.StoredProcedure)) { cmd.Connection = _objectsSqlConnection; cmd.CommandTimeout = 300; var stageSqlParam = new SqlParameter { ParameterName = "@stagingSql", Size = 4000, Direction = ParameterDirection.Output }; cmd.Parameters.Add(stageSqlParam); cmd.Parameters.AddWithValue("@accoutId", delivery.Account.ID); cmd.Parameters.AddWithValue("@deliveryTable", deliveryTable); cmd.Parameters.AddWithValue("@stagingTable", stagingTable); cmd.ExecuteNonQuery(); } } } } }
public static void MetricsStaging(SqlInt32 accoutId, SqlString deliveryTable, SqlString stagingTable, out SqlChars stagingSql) { using (var connection = new SqlConnection("context connection=true")) { connection.Open(); // pass all delivery parameters as parameters to SP var account = Convert.ToInt32(accoutId.ToString()); var deliveryTableName = deliveryTable.ToString(); var stagingTableName = stagingTable.ToString(); try { stagingSql = new SqlChars(EdgeViewer.StageMetrics(account, deliveryTableName, stagingTableName, connection)); } catch (System.Exception ex) { // TODO: write to log in DB throw; } } }